今天接到一個新的任務,要對一個140多M的csv文件進行數據處理,總共有170多萬行,嘗試了導入本地的MySQL數據庫進行查詢,結果用Navicat導入直接卡死....估計是XAMPP套裝里面全默認配置的MySQL性能不給力,又嘗試用R搞一下吧結果發現光加載csv文件就要3分鐘左右的時間,相當不給力啊,翻了翻萬能的知乎發現了Python下的一個神器包:Pandas(熊貓們?),加載這個140多M的csv文件兩秒鐘就搞定,后面的分類匯總等操作也都是秒開,太牛逼了!記錄一下這次數據處理的過程:
使用Python3.6.4環境(對中文支持比較好),安裝Pandas包
pip install pandas
基本使用:
import pandas as pd import numpy as np #進行具體的sum,count等計算時候要用到的 df=pd.read_csv('d:/snp/nh23.csv') #這里絕對路徑一定要用/,windows下也是如此,不加參數默認csv文件首行為標題行 df.head() #查看引入的csv文件前5行數據 df[“播種面積”] #查看指定列,后面跟[:5]查看前5行數據
df[“調查對象代碼”].str[:6] #獲取指定列前6位字符串
df["ADDR"]=df["調查對象代碼"].str[:6] #將上一行處理后的6位地址碼作為新列ADDR插入
gp=df.groupby(["ADDR","代碼"])["播種面積"].sum() #根據ADDR和代碼進行分組后對播種面積列進行sum求和計算
pv=df.pivot_table(["播種面積"],index="ADDR",columns="代碼",margins=True,aggfunc=np.sum,fill_value=0) #數據透視圖,對播種面積列進行匯總計算,index為行,columns為列,margins=True增加一個全部行匯總,aggfunc=np.sum透視圖中對播種面積值進行sum計算,這里np是開頭import的numpy as np,fill_value=0對空值進行0替換,否則沒有數據會顯示NaN
pv.to_csv("d:/snp/test.csv") #寫入csv文件
總結
以上所述是小編給大家介紹的Python使用Pandas對csv文件進行數據處理的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
