我是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
如果您有两列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