先舉例 假如有一 a.csv(內容)如下:
index 職位 薪資 index 職位 薪資
0 經理 6萬 1 經理 5.5萬
2 經理 7萬 3 協理 10萬
4 協理 8萬 5 總經理 20萬
5 課長 4萬
csv檔內容如上,我的想法是將所有職位相同的薪資加起來除
於平均數,例如經理三位(6萬+5.5萬+7萬)/3 =6.166萬
然後從新編排csv檔為
index 職位 薪資
0 經理 6.166萬
講白一點就是把相同職位的資料整還在一起,然後薪資就求他的平均值
一開始的寫法如下:
fx = open(path,'r')
fxr = csv.reader(fx)
for row in fxr:
開始主程式對資料內容進行判讀
這種寫法很直觀也很笨,隨著檔案越來越大 執行的速度也不夠快
我想請問是否有沒有哪些python的模組是可以做csv檔案的重新彙整
而且可以對內容值作相互運算(加減乘除之類的)
我之前有看pandas 的dataframe 好像不錯用 但是他好像沒有對單一列行
的某個值可以做加減乘除用算的功能,不知有沒有版友知道有沒有更棒的
的模組又或者pandas就可以做得到我想要的功能。
如果CSV很大,逐列是省記憶體吧(空間換時間)?不知道Pandas遇到很大CSV記憶體會不會爆?
就 pandas 來處理,語法可以很乾淨達成需求df = pandas.read_csv('file.csv')df.groupby(['title'])['salary'].agg(['mean'])大概這樣的概念??
作者:
ThxThx (洗洗睡)
2018-05-09 05:14:00這樣的想法很直觀可是沒有很笨Simple is better than complex你有用profiler 確定慢是慢在哪裡?但如果想要簡潔一些 pandas的確可以用在你的問題上
k大的方式可以解決你的問題 但不知你的資料量有多少?
若是太多就進資料庫,用 sql groupby 處理也很快