如何在pandas数据框架上正确应用group by ?


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

相关内容

  • 没有找到相关文章

最新更新