我在以所需的方式合并两个数据帧时遇到问题。我用 merge
尝试了很多次都没有成功和 join
方法,但我没有达到预期的结果。
import pandas as pd
d = {'A': [1, 1, 0, 1, 0, 1, 0],
'B': [0, 0, 0, 0, 0, 1, 1]
}
df = pd.DataFrame(data=d, index=["A", "B", "C", "D", "E", "F", "G"])
print(df)
d = {'A2': ["D", "A", "A", "B", "C", "C", "E", "X", "F", "G"],
'B2': ["DD", "AA", "AA", "BB", "CC", "CC", "EE", "XX", "FF", "GG"],
'C3': [1, 1, 11, 35, 53, 2, 76, 45, 5, 34]}
df2 = pd.DataFrame(data=d)
print(df2)
控制台输出:
A B
A 1 0
B 1 0
C 0 0
D 1 0
E 0 0
F 1 1
G 0 1
A2 B2 C3
0 A AA 1
1 A AA 11
2 B BB 35
3 C CC 53
4 C CC 2
5 E EE 76
6 X XX 45
7 F FF 5
8 G GG 34
我正在寻找一种计算以下内容的方法:通过
df
的索引我可以在专栏A2
中查找的 df2
B2
的值应该添加到 df
.想要的结果:
A B B2
A 1 0 AA
B 1 0 BB
C 0 0 CC
D 1 0 DD
E 0 0 EE
F 1 1 FF
G 0 1 GG
(这只是虚拟数据,仅仅复制索引并写入
B2
的df
列是不够的)
最佳答案
set_index
并分配它
df['B2']=df2.drop_duplicates('A2').set_index('A2')['B2']
df
Out[728]:
A B B2
A 1 0 AA
B 1 0 BB
C 0 0 CC
D 1 0 DD
E 0 0 EE
F 1 1 FF
G 0 1 GG
关于pandas - 合并/合并具有不同索引和不同列名的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54260920/