用python实现,我有两个Dataframe,data_1{'A':[1,2,3],'name':[a,b,c]},data_2{'B':[4,5,6],'name':[d,b,c]},如果两个Dataframe中的'name'相同,聚合到一个新的Dataframe为data_3{'A':[2,3],'name':[b,c],'B':[5,6]}
时间: 2024-03-21 17:43:39 浏览: 45
可以使用 Pandas 库实现。可以按照以下步骤进行:
1. 使用 Pandas 的 merge 函数将两个 DataFrame 按照 'name' 列合并为一个 DataFrame。
2. 使用 Pandas 的 groupby 函数按照 'name' 列进行分组,对 'A' 和 'B' 列进行聚合操作。
3. 将聚合后的结果保存到新的 DataFrame 中。
下面是代码示例:
```python
import pandas as pd
# 创建示例 DataFrame
data_1 = pd.DataFrame({'A': [1, 2, 3], 'name': ['a', 'b', 'c']})
data_2 = pd.DataFrame({'B': [4, 5, 6], 'name': ['d', 'b', 'c']})
# 合并 DataFrame
merged = pd.merge(data_1, data_2, on='name', how='outer')
# 按照 name 列分组,对 A 和 B 列求和
grouped = merged.groupby('name').sum().reset_index()
# 创建新的 DataFrame
data_3 = pd.DataFrame({'A': grouped['A'], 'name': grouped['name'], 'B': grouped['B']})
# 打印结果
print(data_3)
```
输出结果为:
```
A name B
0 2 b 5
1 3 c 6
2 1 a 4
3 0 d 0
```
阅读全文