我有两个数据框,它们包含关于同一对象(人)的不同方面(左脚、右脚)的相同信息(长度、宽度)。
import pandas as pd
left_feet = pd.DataFrame(
data={
"Length": [20, 30, 25],
"Width": [8, 10, 9]},
index=[0, 1, 2])
right_feet = pd.DataFrame(
data={
"Length": [24, 30],
"Width": [8, 10]},
index=[2, 1])
print(left_feet)
Length Width
0 20 8
1 30 10
2 25 9
print(right_feet)
Length Width
2 24 8
1 30 10
我想将它们合并成一个DataFrame,所以我这样做:
feet = pd.merge(left_feet, right_feet,
left_index=True, right_index=True,
suffixes=["_left", "_right"])
print(feet)
Length_left Width_left Length_right Width_right
1 30 10 30 10
2 25 9 24 8
使用后缀非常繁琐。我希望列是一个MultiIndex,其中第一级包含“left”和“right”,第二级包含“length”和“width”。
最佳方法是什么?
注意:关于连接对齐的数据框的类似问题已经被问过,但是这个问题是关于“join”(即“merge”)操作的;行不一定对齐,可能没有相应的行。
pd.concat
。如果concat
函数确实可以进行联接(而不仅仅是连接),那么这就是一个很好的答案。感谢您的回答,如果我需要使用merge
函数(可能需要额外的合并功能),这个回答非常重要。 - Denziloe