我的DataFrame 3字段是賬戶,月份和薪水。熊貓groupby +轉換需要6億條記錄的小時數
account month Salary
1 201501 10000
2 201506 20000
2 201506 20000
3 201508 30000
3 201508 30000
3 201506 10000
3 201506 10000
3 201506 10000
3 201506 10000
我這樣做對客戶和月GROUPBY和計算工資的總和組。然後刪除重複。
MyDataFrame['salary'] = MyDataFrame.groupby(['account'], ['month'])['salary'].transform(sum)
MyDataFrame = MyDataFrame.drop_duplicates()
期待輸出象下面這樣:
account month Salary
1 201501 10000
2 201506 40000
3 201508 60000
3 201506 40000
它非常適用幾個記錄。我爲600萬條記錄嘗試了相同的,並且自4-5小時以來一直在進行中。最初當我使用pd.read_csv()獲取60 GB RAM的數據加載數據時,直到1-2小時RAM使用率在90至120 GB之間。經過3個小時的過程需要236 GB的RAM,並且仍在運行。
請提出建議,如果有任何其他更快的方式可用於此。
編輯: 現在15分鐘在df.groupby([ '賬戶', '月'],排序= FALSE)[ '工資']和()
不應該的聲明僅僅是:'df.groupby([ '賬戶', '月'])Salary.sum()'? – Alexander
@Alexander我正在嘗試它,不知道如果兩者都不同 – Vipin
@Alexander我得到一個錯誤「與幀索引插入列不兼容索引」,我運行它像MyDataFrame ['salary'] = MyDataFrame.groupby(['' sum() – Vipin