我的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