[英]How to merge two DataFrames of unequal size based on row value
我有两个类型的熊猫DataFrame
DataFrame 1
Index Name Property1 Property2
0 ("a","b") 1 2
1 ("c","d") 3 4
2 ("e","f") 5 6
第二个具有共同的值,但没有相同的索引(我不在乎)。
DataFrame 2
Index Name Property3 Property4
0 ("g","h") 7 8
1 ("i","j") 9 10
2 ("k","l") 11 12
3 ("a","b") 13 14
4 ("c","d") 15 16
5 ("e","f") 17 18
有没有一种方法可以将它们组合在一起,以使结果DataFrame是在表之间共享名称的公共行?
即熊猫操作的结果应该是
Result Frame
Index Name Property1 Property2 Property3 Property4
0 ("a","b") 1 2 13 14
1 ("c","d") 3 4 15 16
2 ("e","f") 5 6 17 18
抱歉,我没有为您提供实际的熊猫代码来创建上述DataFrames。 但是我想从概念上理解如何基于列名将两个不等大小的DataFrame与不同的“索引”结合在一起。 我尝试过合并和合并并加入,但没有得到想要的结果。
假设您的索引实际上是您的索引,则默认merge
在这里可以正常工作:
In [22]:
df1.merge(df2)
Out[22]:
Name Property1 Property2 Property3 Property4
0 ("a","b") 1 2 13 14
1 ("c","d") 3 4 15 16
2 ("e","f") 5 6 17 18
在这里, merge
查找公用列,并对这些列执行inner
合并。
您可以明确指定并在“名称”列上指定要合并:
df1.merge(df2, on='Name')
但是在这种情况下,这是没有必要的,因为无论如何,唯一的公共列是“名称”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.