我正在使用(共享)索引值列在Python中寻找两个DataFrame结构的组合。
数据摘录:
d1 = {'col1': ['entry1', 'entry2', 'entry3'], 'col2': [1, 2,3]}
df1 = pd.DataFrame(data=d1)
d2= {'col1': ['entry2', 'entry3', 'entry1'], 'priority': [4, 2 , 7]}
df2 = pd.DataFrame(data=d2)
结果应该是
col1 col2 priority
---- ---- ----
entry1 1 7
entry2 2 4
entry3 3 2
我怎样才能做到这一点?
答案 0 :(得分:1)
有一个few options:
您可以使用pd.concat
pd.concat([df1.set_index('col1'), df2.set_index('col1')], axis=1)
这会给你
col2 priority
entry1 1 7
entry2 2 4
entry3 3 2
因此col1
成为您的索引。
如果它应该是列,您可以使用merge
df1.merge(df2)
给出了
col1 col2 priority
0 entry1 1 7
1 entry2 2 4
2 entry3 3 2
或
pd.merge(df1, df2, on='col1')
产生
col1 col2 priority
0 entry1 1 7
1 entry2 2 4
2 entry3 3 2
另一个选项也是join
df1.set_index('col1').join(df2.set_index('col1'))
给出了
col2 priority
col1
entry1 1 7
entry2 2 4
entry3 3 2
答案 1 :(得分:-1)
简单如
frames = [df1.set_index('col1'), df2.set_index('col1'), axis = 1]
result = pd.concat(frames)