【发布时间】:2018-12-10 05:57:21
【问题描述】:
我有两个共享同一个列名的 pandas 数据帧。我想合并公用列名,但保留第二个数据框中的所有不同列,其中公用列名匹配。这是两个数据帧的示例:
DF1:
A B C D E F G H
value value value value value value value value
value value value value value value value value
value value value value value value value value
etc.
DF2:
A I J K L
value value value value value
value value value value value
value value value value value
我希望预期的结果是:
Result:
A B C D E F G H I J K L
value value value value value value value value value value value value
value value value value value value value value value value value value
value value value value value value value value value value value value
也就是说,如果在“A”列上有匹配项,我希望保留 I、J、K、L 的行并且不等于“NaN”,对于 DF1 中的列也是如此。
我已经尝试了所有 pd.merge 选项,但它们似乎没有按照我上面的要求进行操作。例如,
pd.merge(DF1, DF2, on='A', how='left')
匹配“A”并将所有键保留在左侧,但不来自第二个数据帧。我知道这是它应该做的,但这不是我想要的。类似地,how='right' 执行相同的操作,但保留右侧的所有键,并用 'NaNs' 填充左侧的所有键。 “外部”似乎也没有做我想做的事,因为它只是将所有东西粘在一起并用 NaN 填充所有不相似的列。
另外,请注意 DF1 和 DF2 的索引顺序不同。
任何人都可以在这里为我提供前进的道路吗?谢谢!
【问题讨论】: