将总和行添加到数据框中的特定列

AGH*_*ORN 3 python pandas

我有一个数据框,

df = pd.DataFrame([{'project': 123456, 'date': '08/07/2019', 'total': 123, 
                    'count': 12}, {'project': 123457, 'date': '08/07/2019', 
                    'total': 124, 'count': 13}, {'project': 123458, 'date': 
                    '08/07/2019', 'total': 125, 'count': 14}])
Run Code Online (Sandbox Code Playgroud)

我想将总行添加到仅totalcount列的底部。我知道我能做到

df.loc['Total'] = df.sum(numeric_only=True)
Run Code Online (Sandbox Code Playgroud)

但我的project列是数字,我不需要Total底行的单词,只需要这两列的总和。有什么方法可以删除该单词并确保仅对这两列进行求和?

Iva*_*sky 8

我相信每个项目都有一个唯一的 ID,所以我不知道这是否是一个有效的解决方案。由于问题没有限制,我建议如下,通过使用列项目作为索引,您可以轻松添加更多项目 ID 及其信息,最后一行将把它们全部汇总!

import pandas as pd
df = pd.DataFrame([{'project': 123456, 'date': '08/07/2019', 'total': 123, 
                    'count': 12}, {'project': 123457, 'date': '08/07/2019', 
                    'total': 124, 'count': 13}, {'project': 123458, 'date': 
                    '08/07/2019', 'total': 125, 'count': 14}])
df1 = df.set_index('project')
df1.loc['Total'] = df1.sum(numeric_only=True)
print(df1)
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果,我相信这就是你想要的:

               date  total  count
project
123456   08/07/2019  123.0   12.0
123457   08/07/2019  124.0   13.0
123458   08/07/2019  125.0   14.0
Total           NaN  372.0   39.0
Run Code Online (Sandbox Code Playgroud)

  • 今天我已经两次删除了我的答案,因为我更喜欢另一个答案。 (3认同)
  • 我是说这是一个非常好的答案。太好了,我决定删除我的答案,因为我希望 OP 专注于这个问题。**而且**这恰好是我今天第二次这样做(-: (3认同)