如何使用python/pandas对来自不同数据帧的类别相关联的值求和?



我是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     ║
╚═══════════════════════════╩═══════╝

有什么想法吗?

我希望我对桌子做得很好...

编辑:我猜是固定

试试这个:

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

输出:

value
category       
A             2
B             5
C            10

如果"category"列是数据帧的索引,则可以使用.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

如果您有两列CategoryValue并且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