在Pandas中合并数据帧并忽略重复索引(有选择地)

时间:2017-03-09 09:28:27

标签: python pandas dataframe merge

我希望将两个数据帧df1,df2连接到一个新的数据帧,其中重复索引/列中的值如果存在于df1和df2中则分配为 A B C X NA 1 2 #Note: (X,B) also in df2 Y 3 2 NA #Note: (Y,B) also in df2 Z NA NA 4 ,但是考虑到它们的真实值仅存在一个:

DF1:

    A    B    F
X   -1   -1   NA    #Note: (X,A) not in df1
Y   NA   -3   -4    #Note: (Y,A) not in df1
W   NA   -3   -4

DF2:

    A    B    C    F
X   -1   NA   2    NA
Y   3    NA   NA   -4
Z   NA   NA   4    NA
W   NA   -3   NA   -4

输出:

pd.concat([df1,df2], axis=1)

我认为像current这样的东西应该有效,但我不知道如何为具有值的索引/列创建特殊条件。 提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用combine_first,然后将a = [2, 3 , 1, 2, 3].reduce(Hash.new(0)) { |h, num| h[num] += 1; h } 替换为mask - NaNnotnullmask创建,{{1} }被fillna替换为&

NaN