Python 如何保持Dataframe中的所有键列连接

Python 如何保持Dataframe中的所有键列连接,python,pandas,dataframe,join,Python,Pandas,Dataframe,Join,输入 我有这两个数据帧 current_rComp = #1 X Y 0 nationality BART USA next_rComp= #2 X Z 0 nationality BART USA 1 placeOfBirth BART NEWYORK 2 hasFather BART HOMMER 我需要使用相同的键(X)将两个数据帧内部连接起来。

输入

我有这两个数据帧

current_rComp =

            #1     X    Y
0  nationality  BART  USA


next_rComp=
    
             #2     X        Z
0   nationality  BART      USA
1  placeOfBirth  BART  NEWYORK
2     hasFather  BART   HOMMER
我需要使用相同的键(
X
)将两个数据帧内部连接起来。所以我试着如下

key = current_rComp.columns.intersection(next_rComp.columns).tolist() 
proof_path = pd.merge(current_rComp, next_rComp, on=key)

proof_path =

            #1     X    Y            #2        Z
0  nationality  BART  USA   nationality      USA
1  nationality  BART  USA  placeOfBirth  NEWYORK
2  nationality  BART  USA     hasFather   HOMMER
但是我想知道在连接两个数据帧时是否有一种方法可以同时保持两个连接键列。是否有一种简单的方法来维护用作联接键的所有列?

可以通过使用过滤列的方式来执行
列表:

key = current_rComp.columns.intersection(next_rComp.columns).tolist() 
proof_path = pd.merge(current_rComp, next_rComp, on=key)

df = pd.concat([proof_path, proof_path[key]], axis=1)
print (df)
            #1     X    Y            #2        Z     X
0  nationality  BART  USA   nationality      USA  BART
1  nationality  BART  USA  placeOfBirth  NEWYORK  BART
2  nationality  BART  USA     hasFather   HOMMER  BART
但不推荐,如果以后需要处理数据帧,因为如果选择列名重复的列,则会得到如下所有列:

print (df['X'])
      X     X
0  BART  BART
1  BART  BART
2  BART  BART
如果唯一列名输出为
系列

print (df['Y'])
0    USA
1    USA
2    USA
Name: Y, dtype: object