我有下面的csv
ID,PR_No,PMO,PRO,REV,COST
111,111,AB,MA,2575,2575
111,111,AB,MA,-1137,-1137
112,112,CD,KB,1134,3334
111,111,AB,MA,100,100产出如下
ID,PR_No,PMO,PRO,REV,COST
111,111,AB,MA,1538,1538
112,112,CD,KB,1134,33341538=2575-1137+100
我的代码正在抛出值错误。
df_n = df.groupby([['ID','PR_No','PMO','PRO']]).agg({'REV':sum,'COST':sum})发布于 2020-04-28 04:54:08
删除列名称列表的嵌套[]:
df_n = df.groupby(['ID','PR_No','PMO','PRO']).agg({'REV':sum,'COST':sum})
print (df_n)
REV COST
ID PR_No PMO PRO
111 111 AB MA 1538 1538
112 112 CD KB 1134 3334因为同一个聚合函数可以用.sum创建一个接一个的列表
df_n = df.groupby(['ID','PR_No','PMO','PRO'])['REV','COST'].sum()ValueError:石斑鱼和石斑鱼的长度必须相同
什么意思?
如果与示例数据一起运行,则因为嵌套列表的长度与示例数据的长度相同:
df_n = df.groupby([['ID','PR_No','PMO','PRO']]).agg({'REV':sum,'COST':sum})
print (df_n)
REV COST
ID 2575 2575
PMO 1134 3334
PRO 100 100
PR_No -1137 -1137如果创建具有重复项的列表,则聚合示例数据:
df_n = df.groupby([['ID','ID','PRO','PRO']]).agg({'REV':sum,'COST':sum})
print (df_n)
REV COST
ID 1438 1438
PRO 1234 3434但如果长度不同,它就失败了:
print (df)
ID PR_No PMO PRO REV COST
0 111 111 AB MA 2575 2575
1 111 111 AB MA -1137 -1137
2 112 112 CD KB 1134 3334
3 111 111 AB MA 100 100
4 111 111 AB MA 100 100 <- added new row
df_n = df.groupby([['ID','ID','PRO','PRO']]).agg({'REV':sum,'COST':sum})
print (df_n)ValueError:石斑鱼和轴线必须是相同长度的
发布于 2020-04-28 05:17:11
尝试使用一些agg或sum函数,它会工作的..。
df_n = df.groupby([......])[....].sum()https://stackoverflow.com/questions/61472850
复制相似问题