《python數(shù)據(jù)分析與應(yīng)用》 課件 第9章 核心數(shù)據(jù)處理庫pandas_第1頁
《python數(shù)據(jù)分析與應(yīng)用》 課件 第9章 核心數(shù)據(jù)處理庫pandas_第2頁
《python數(shù)據(jù)分析與應(yīng)用》 課件 第9章 核心數(shù)據(jù)處理庫pandas_第3頁
《python數(shù)據(jù)分析與應(yīng)用》 課件 第9章 核心數(shù)據(jù)處理庫pandas_第4頁
《python數(shù)據(jù)分析與應(yīng)用》 課件 第9章 核心數(shù)據(jù)處理庫pandas_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第9章核心數(shù)據(jù)處理庫pandasPython數(shù)據(jù)分析與應(yīng)用1CONTENTS9.1知識準備9.2代碼補全和知識拓展9.3實訓(xùn)任務(wù)9.4延伸高級任務(wù)目錄9.5課后習題2知識準備139.1.3DataFrame對象df=pd.read_excel('data.xlsx’)df.to_excel('data.xlsx',index=False) 導(dǎo)出Excel文件知識準備data={'Name':['John','Emma','Mike'],'Age':[25,28,32],'City':['NewYork','SanFrancisco','Chicago']}df=pd.DataFrame(data)print(df)運行結(jié)果:

NameAgeCity0John25NewYork1Emma28SanFrancisco2Mike32Chicago4 讀取Exccel文件9.1.1pandas庫簡介9.1.2Series對象字典和Series的相似之處importpandasaspd#定義學(xué)生成績數(shù)據(jù)name=['小明','小紅','小剛','小華','小李']score=[92,85,78,88,95]#創(chuàng)建Series對象s=pd.Series(score,index=name)知識準備importpandasaspdimportnumpyasnparr=np.array([[1,2,3],[4,5,6],[7,8,9]])df=pd.DataFrame(arr,columns=['A','B','C'])print(df)運行結(jié)果:

ABC0123145627895從NumPy數(shù)組創(chuàng)建DataFramedf=pd.DataFrame(data)print(df[['總價','數(shù)量']])數(shù)據(jù)多列提取訪問一行數(shù)據(jù):.loc[index的值]訪問連續(xù)的某幾行數(shù)據(jù):.loc[起點index的值:結(jié)束index的值]#使用loc按照標簽索引訪問連續(xù)行數(shù)據(jù)rows=data.loc[1:3]#使用.loc訪問不連續(xù)的某幾行數(shù)據(jù)selected_rows=data.loc[[1,3]]布爾索引和判斷條件#判斷條件:篩選年齡大于等于35的行condition=df['Age']>=35#多個判斷條件:篩選年齡大于30并且城市為'Paris'的行condition=(df['Age']>30)&(df['City']=='Paris')#應(yīng)用布爾索引,保留滿足條件的行filtered_df=df[condition]df=pd.DataFrame(data)#檢測缺失值print(df.isnull())缺失值的檢測df=pd.DataFrame(data)#使用指定值填充缺失值filled_df=df.fillna(value={'A':0,'B':'missing','C':'unknown'})#使用前一行的值填充缺失值filled_df=df.fillna(method='ffill’)#使用后一行的值填充缺失值filled_df=df.fillna(method='bfill')填充缺失值df.drop(1,axis=0,inplace=True)df.drop('B',axis=1,inplace=True)刪除DataFrame中的行/列知識準備df=pd.DataFrame({'A':[1,np.nan,3],'B':[np.nan,5,6]})df.dropna(axis=0,how='any',inplace=True)刪除DataFrame中包含任何缺失值的行刪除DataFrame中整行都是缺失值的行df=pd.DataFrame({'A':[np.nan,np.nan,np.nan],'B':[4,np.nan,6]})df.dropna(axis=0,how='all',inplace=True)df=pd.DataFrame({'A':[1,2,2,3,4,4],'B':['a','b','b','c','d','d']})df_dropped=df.drop_duplicates()刪除重復(fù)值代碼補全和知識拓展27importpandasaspd#讀取路徑為"/視頻會員訂單數(shù)據(jù)源.csv"的文件,賦值給變量dfdf=(__________)#商品價格price,單位分轉(zhuǎn)化成元df['price']=df['price']/100#使用to_datetime()函數(shù),將訂單創(chuàng)建時間create_time和支付時間pay_time,轉(zhuǎn)化成時間格式df['create_time']=(__________)df['pay_time']=(__________)#使用布爾索引和isnull函數(shù),將payment_provider這一列的缺失值篩選出,賦值給變量dfPayNull#dfPayNull就是,包含所有payment_provider這一列缺失值的行dfPayNull=(__________)#TODO使用drop函數(shù),將dfPayNull,也就是包含所有payment_provider這一列缺失值的行刪除df.drop(__________)#使用(),快速瀏覽數(shù)據(jù)集()對數(shù)據(jù)的質(zhì)量進行檢查和處理。9.2.1代碼補全:1.會員信息處理8#導(dǎo)入pandas模塊,簡稱pdimportpandasaspd#定義一個字典datadata={'name':['May','Tony','Kevin'],'score':[689,659,635]}#定義一個列表rank,內(nèi)含參數(shù)1,2,3,rank=(_____________)#使用pd.DataFrame()函數(shù),傳入?yún)?shù):字典data作為value和columns,列表rank作為index#構(gòu)造出的DataFrame賦值給performanceperformance=(_____________)#輸出performance這個DataFrameprint(performance)使用DataFrame構(gòu)造函數(shù),將定義的字典data和列表rank作為參數(shù)傳入,生成一個DataFrame,并賦值給變量performance。9.2.1代碼補全:4.班級成績表創(chuàng)建9importpandasaspd#創(chuàng)建一個Series對象math_scores=pd.Series([85,90,76,92,88,95,84,79,91,87],index=['Tom','Jerry','Alice','Bob','Linda','John','Emily','David','Amy','Sophia'])#提取前五名學(xué)生的成績(______________)#打印切片結(jié)果(______________)對假設(shè)有一位班主任想要分析學(xué)生的成績情況。請使用pandas創(chuàng)建一個Series對象,記錄一班學(xué)生的數(shù)學(xué)成績,并根據(jù)索引進行切片操作,提取前五名學(xué)生的成績。。9.2.1代碼補全:5.學(xué)生成績切片操作10在pandas中,mean()是一個用于計算數(shù)據(jù)集均值的方法。它用于計算DataFrame中的列的平均值。round()是一個用于對數(shù)據(jù)進行四舍五入的方法。一些計算方法#定義一個嵌套列表data,內(nèi)含參數(shù)May,689;Tony,659;Kevin,635。data=(_____________)#定義一個列表rankrank=[1,2,3]#使用pd.DataFrame()函數(shù),嵌套列表data和列表rank作為參數(shù)傳入,并且使用參數(shù)columns自定義列索引columns:#構(gòu)造出的DataFrame賦值給resultresult=(_____________)用列表構(gòu)造DataFrame9.2.2知識拓展:正則表達式9.3實訓(xùn)任務(wù)312請完成以下任務(wù):1.創(chuàng)建一個DataFrame,并將原始數(shù)據(jù)導(dǎo)入。2.檢查數(shù)據(jù)中是否存在缺失值,并處理這些缺失值。3.將銷售日期列的數(shù)據(jù)類型轉(zhuǎn)換為日期類型,并將其設(shè)置為DataFrame的索引。4.去除重復(fù)的記錄。5.計算每個訂單的銷售總金額,并添加為新的一列。6.根據(jù)產(chǎn)品名稱分組,并計算每種產(chǎn)品的銷售數(shù)量總和和銷售金額總和。7.根據(jù)銷售日期按月份進行分組,并計算每月的銷售數(shù)量總和和銷售金額總和。8.將清洗和處理后的數(shù)據(jù)保存為一個新的CSV文件。9.3.1銷售數(shù)據(jù)處理9.3實訓(xùn)任務(wù)13創(chuàng)建一個Series[1,2,3,4,5,6,7,8,9,10],判斷Series中的元素是否全部大于5?importpandasaspds1=pd.Series([1,2,3,4,5,6,7,8,9,10])print(s1)#顯示兩列,第一列為索引,第二列為值print(s1[4])#打印索引4對應(yīng)的值:5allabove5=Trueforindexinrange(0,len(s1)):ifs1[index]<=5:allabove5=Falseifallabove5:print('TheSeriesisallabove5.')else:print('TheSeriesisnotallabove5.')9.3.2判斷是否全大于59.3實訓(xùn)任務(wù)14根據(jù)DataFrame創(chuàng)建的銷售數(shù)據(jù)和客戶數(shù)據(jù),編寫代碼完成以下實訓(xùn)任務(wù):1. 計算每個客戶的總銷售額和平均銷售額。2. 找出銷售額最高的客戶和銷售額最低的客戶。3. 根據(jù)客戶的所在地區(qū)(城市)統(tǒng)計每個地區(qū)的銷售額總和和平均銷售額。4. 找出銷售額最高的地區(qū)和銷售額最低的地區(qū)。9.3.3銷售數(shù)據(jù)和客戶數(shù)據(jù)9.3實訓(xùn)任務(wù)15請完成以下任務(wù):1. 添加一條記錄,學(xué)生姓名為"小明",科目為"化學(xué)",成績?yōu)?7,班級為"A"。2. 將小紅的數(shù)學(xué)成績修改為90。3. 刪除小明在物理科目的成績記錄。9.3.4學(xué)生各科成績處理9.3實訓(xùn)任務(wù)16延伸高級任務(wù)417一組電商銷售數(shù)據(jù),包含訂單ID、產(chǎn)品ID、銷售額、銷售時間等信息。要求使用DataFrame計算每個產(chǎn)品的月銷售額、季度銷售額,并找出銷售額最高的產(chǎn)品和銷售額最高的季度。df=pd.DataFrame(data)#將銷售日期轉(zhuǎn)換為日期類型df['SalesDate']=(_____________)#計算每個產(chǎn)品的月銷售額df['Month']=(_____________)monthly_sales=(_____________)#計算每個產(chǎn)品的季度銷售額df['Quarter']=(_____________)quarterly_sales=(_____________)#找出銷售額最高的產(chǎn)品和銷售額最高的季度highest_sales_product(_____________)print("每個產(chǎn)品的月銷售額:")print(monthly_sales)print("\n每個產(chǎn)品的季度銷售額:")print(quarterly_sales)print("\n銷售額最高的產(chǎn)品:",highest_sales_produc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論