COL:SPM COL:BS COL:PL2 COL:PL3 sum
CCTC BG OP OTH 1
CCTC BG tech OTH 3
CCTC BG OP OTH 5
CCTC BG Info OTH 10
我正在应用groupby,因为我希望我的数据对所有这些列spm,bs,pl2,pl3进行分组:
预期结果:
COL:SPM COL:BS COL:PL2 COL:PL3 sum
CCTC BG OP OTH 6
CCTC BG tech OTH 3
CCTC BG Info OTH 10
我得到的结果:
COL:SPM COL:BS COL:PL2 COL:PL3 sum
CCTC BG OP OTH some unverified integer value
df.groupby(['SPM','BS','PL2','PL3'])['sum'].sum().reset_index()
我不明白为什么我得到错误的结果?我在网上搜索过了,没有找到解决方案
您可以试试这个最小的示例代码。它有用吗?
df = pd.DataFrame({'SPM': ['CCTC', 'CCTC', 'CCTC', 'CCTC'],
'BS': ['BG', 'BG', 'BG', 'BG'],
'PL2': ['OP', 'tech', 'OP', 'Info'],
'PL3': ['OTH', 'OTH', 'OTH', 'OTH'],
'sum': [1.0, 3.0, 5.0, 10]})
out = df.groupby(['SPM', 'BS', 'PL2', 'PL3']).sum().reset_index()
输出:
>>> df
SPM BS PL2 PL3 sum
0 CCTC BG OP OTH 1
1 CCTC BG tech OTH 3
2 CCTC BG OP OTH 5
3 CCTC BG Info OTH 10
>>> out
SPM BS PL2 PL3 sum
0 CCTC BG Info OTH 10
1 CCTC BG OP OTH 6
2 CCTC BG tech OTH 3