我们如何通过Map两个列(.map)来匹配两个pandas Dataframe ?我尝试使用一个列Map,但这会产生重复。要解决这个问题,应该使用两个列Map来创建唯一的行。
下面是一个具有预期输出的示例:
df1
idx a1 b1 c1 d1 e1
12 4 x10 2 2 5
13 5 x2 3 5 4
14 6 x4 6 9 6
15 7 x13 7 9 2
df2
idx a2 b2 c2 d2 e2
1 x2 x1 2 2 4
2 x8 x2 6 9 8
3 x6 x4 7 9 5
4 x4 x7 6 8 9
通过将c1
Map到c2
,并将d1
Map到d2
,e2
的值应更新为e1
的值,因此df2应如下所示
df2
idx a2 b2 c2 d2 e2
1 x2 x1 2 2 5 (updated)
2 x8 x2 6 9 6 (updated)
3 x6 x4 7 9 2 (updated)
4 x4 x7 6 8 9
2条答案
按热度按时间yhuiod9q1#
您可以使用
merge
/combine_first
:输出:
z9zf31ra2#
在
Series.fillna
中使用两个DataFrame的左连接,并将不匹配的值替换为原始列:如果
df2.index
中的默认索引:或者使用
Index.map
byMulitIndex
: