如何在Python中组合两个DataFrame结构

时间:2017-12-08 22:34:11

标签: python pandas dataframe

我正在使用(共享)索引值列在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

我怎样才能做到这一点?

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)