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