如何使用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 ║
╚═══════════════════════════╩═══════╝
有没有什么建议呢?
我希望我在表格方面做得还不错……
编辑:我想我已经修好了。
相关问题:
- 暂无相关问题
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