溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python使用Pandas對csv文件進(jìn)行數(shù)據(jù)處理的方法

發(fā)布時(shí)間:2020-10-25 03:32:54 來源:腳本之家 閱讀:472 作者:香香爹 欄目:開發(fā)技術(shù)

今天接到一個新的任務(wù),要對一個140多M的csv文件進(jìn)行數(shù)據(jù)處理,總共有170多萬行,嘗試了導(dǎo)入本地的MySQL數(shù)據(jù)庫進(jìn)行查詢,結(jié)果用Navicat導(dǎo)入直接卡死....估計(jì)是XAMPP套裝里面全默認(rèn)配置的MySQL性能不給力,又嘗試用R搞一下吧結(jié)果發(fā)現(xiàn)光加載csv文件就要3分鐘左右的時(shí)間,相當(dāng)不給力啊,翻了翻萬能的知乎發(fā)現(xiàn)了Python下的一個神器包:Pandas(熊貓們?),加載這個140多M的csv文件兩秒鐘就搞定,后面的分類匯總等操作也都是秒開,太牛逼了!記錄一下這次數(shù)據(jù)處理的過程:

使用Python3.6.4環(huán)境(對中文支持比較好),安裝Pandas包

pip install pandas

基本使用:

import pandas as pd
import numpy as np #進(jìn)行具體的sum,count等計(jì)算時(shí)候要用到的
df=pd.read_csv('d:/snp/nh33.csv') #這里絕對路徑一定要用/,windows下也是如此,不加參數(shù)默認(rèn)csv文件首行為標(biāo)題行
df.head() #查看引入的csv文件前5行數(shù)據(jù)
df[“播種面積”] #查看指定列,后面跟[:5]查看前5行數(shù)據(jù)

Python使用Pandas對csv文件進(jìn)行數(shù)據(jù)處理的方法

df[“調(diào)查對象代碼”].str[:6] #獲取指定列前6位字符串

df["ADDR"]=df["調(diào)查對象代碼"].str[:6] #將上一行處理后的6位地址碼作為新列ADDR插入

Python使用Pandas對csv文件進(jìn)行數(shù)據(jù)處理的方法

gp=df.groupby(["ADDR","代碼"])["播種面積"].sum() #根據(jù)ADDR和代碼進(jìn)行分組后對播種面積列進(jìn)行sum求和計(jì)算

Python使用Pandas對csv文件進(jìn)行數(shù)據(jù)處理的方法

pv=df.pivot_table(["播種面積"],index="ADDR",columns="代碼",margins=True,aggfunc=np.sum,fill_value=0) #數(shù)據(jù)透視圖,對播種面積列進(jìn)行匯總計(jì)算,index為行,columns為列,margins=True增加一個全部行匯總,aggfunc=np.sum透視圖中對播種面積值進(jìn)行sum計(jì)算,這里np是開頭import的numpy as np,fill_value=0對空值進(jìn)行0替換,否則沒有數(shù)據(jù)會顯示NaN

Python使用Pandas對csv文件進(jìn)行數(shù)據(jù)處理的方法

pv.to_csv("d:/snp/test.csv") #寫入csv文件

總結(jié)

以上所述是小編給大家介紹的Python使用Pandas對csv文件進(jìn)行數(shù)據(jù)處理的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI