您好,登錄后才能下訂單哦!
本篇內容主要講解“python數據分析之怎么用pandas搞定Excel表格”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python數據分析之怎么用pandas搞定Excel表格”吧!
接下來我們讀取三類文件csvtsvtxt文件,值得注意的是讀取這三類文件時使用的都是同一個方法,即pd.read_csv(file),在讀取時為excel表時需注意分隔符,使用參數sep=''來分隔。接下來我們一起看看在excel和pandas種如何操作的吧!
從excel中導入外部數據
導入csv文件時,分隔符選擇逗號即可。
導入tsv文件,分隔符選擇tab鍵
導入txt文件時,注意文本里是以什么符號分隔的,自定義分隔符。
在pandas中為無論是讀取csv文件還是tsv文件亦或者txt文件,都是用read_csv()的方法讀取,另外加上sep()參數來分隔。
import pandas as pd # 導入csv文件 test1 = pd.read_csv('./excel/test12.csv',index_col="ID") df1 = pd.DataFrame(test1) print(df1)
tab鍵用\t來表示
import pandas as pd # 導入tsv文件 test3 = pd.read_csv("./excel/test11.tsv",sep='\t') df3 = pd.DataFrame(test3) print(df3)
import pandas as pd # 導入txt文件 test2 = pd.read_csv("./excel/test13.txt",sep='|') df2 = pd.DataFrame(test2) print(df2)
結果:
在excel中存在多種數據,且分為很多類型,這時使用數據透視表就會很方便也很直觀的為我們分析出各種我們想要的數據了。
實例:將下列數據繪制成一個透視表,并繪制出按總類分每年的銷售額!
需要按照年份來分,則我們需要將date列拆分,把年份拆分出來。隨后在數據欄下選擇數據透視表,選擇區域即可。
隨后將各部分數據拖動到各區域即可。
結果:
這樣就在excel中完成了數據透視表的制作。
那么在pandas中要怎么實現這一效果呢?
繪制透視表的函數為:df.pivot_lable(index,columns,values),最后將數據求和即可。
import pandas as pd import numpy as np pd.options.display.max_columns =999 test = pd.read_excel('./excel/test14.xlsx') df = pd.DataFrame(test) # 將年份取出并新建一個列名為年份的列 df['year'] = pd.DatetimeIndex(df['Date']).year # 繪制透視表 table = df.pivot_table(index='總類',columns='year',values='銷售額',aggfunc=np.sum) df1 = pd.DataFrame(table) df1['總計'] = df1[[2011,2012,2013,2014]].sum(axis=1) print(df1)
結果:
除此之外還可以利用groupby函數來繪制數據表。這里將總類和年份分組求銷售總額和銷售數量。
import pandas as pd import numpy as np pd.options.display.max_columns =999 test = pd.read_excel('./excel/test14.xlsx') df = pd.DataFrame(test) # 將年份取出并新建一個列名為年份的列 df['year'] = pd.DatetimeIndex(df['Date']).year # groupby方法 group = df.groupby(['總類','year']) s= group['銷售額'].sum() c = group['ID'].count() table = pd.DataFrame({'sum':s,'total':c}) print(table)
結果:
到此,相信大家對“python數據分析之怎么用pandas搞定Excel表格”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。