如何使用python/pandas对不同数据框中的类别值进行求和?

1 投票
3 回答
686 浏览
提问于 2025-06-18 04:00

我刚开始学习Python,遇到了一个简单的问题,我想应该没什么大不了的。

+---------------------------+-------+
|        Dataframe 1        |       |
+---------------------------+-------+
| Category                  | Value |
| A                         | 1     |
| B                         | 10    |


+-------------+-------+
| Dataframe 2 |       |
+-------------+-------+
| Category    | Value |
| A           | 1     |
| C           | 5     |
+-------------+-------+



╔═══════════════════════════╦═══════╗
║ Result Dataframe expected ║       ║
╠═══════════════════════════╬═══════╣
║ Category                  ║ Value ║
║ A                         ║ 2     ║
║ B                         ║ 10    ║
║ C                         ║ 5     ║
╚═══════════════════════════╩═══════╝

有没有什么建议呢?

我希望我在表格方面做得还不错……

编辑:我想我已经修好了。

相关问题:

  • 暂无相关问题
暂无标签

3 个回答

0

如果你有两列数据,分别是 Category(类别)和 Value(数值),而 Category 不是索引的话,你可以使用下面的代码来处理:

df1 = pd.DataFrame([('A',1),('B',10)], columns=['Category','Value'])
df2 = pd.DataFrame([('A',1),('C',5)], columns=['Category','Value'])

df_add = df1.set_index('Category').add(df2.set_index('Category'), fill_value=0)
df_add

输出结果:

           Value
Category    
A          2.0
B          10.0
C          5.0
1

如果“类别”这一列是数据框的索引,你可以使用 .add 方法:

import pandas

df1 = pandas.DataFrame({'value': [1, 5]}, index=['A', 'B'])
df2 = pandas.DataFrame({'value': [1, 10]}, index=['A', 'C'])
df1.add(df2, fill_value=0)

这会输出:

   value
A    2.0
B    5.0
C   10.0
2

试试这个:

pd.concat([df1,df2]).groupby('category').sum()

输出结果:

          value
category       
A             2
B             5
C            10

撰写回答