将来自不同数据帧的行合并在一起

时间:2015-10-26 13:36:12

标签: python pandas merge concat

我有两个Dataframe:一个包含“Name”,“Year”和“Type”列,另一个包含不同的参数。有4种不同的类型,每种类型都有自己的特定参数。现在我需要将它们合并在一起。

我的方法是使用if函数找出“类型”。例如,在df3的第二行中,我有类型'a'。类型“a”的参数位于df4的第3行。我尝试使用以下代码连接它们:

df3.ix[[2]]
s1 = df3.ix[[2]]
s2 = df4.ix[[3]]
result = pd.concat([s1, s2], axis=1)

我现在的问题是,参数是在一个单独的行中,而不是添加到第2行。是否有可能将它们合并在一行中?谢谢你的回答!

1 个答案:

答案 0 :(得分:1)

如果df3Type列且df4type列,那么这两个数据框可以与

合并
pd.merge(df3, df4, left_on='Type', right_on='type')

默认为an inner join

In [13]: df3
Out[13]: 
  Name  Year   Type
1    A  2012   boat
2    B  2013    car
3    C  2011  truck
4    D  2013   boat

In [14]: df4
Out[14]: 
    type  Parameter1  Parameter2  Parameter3
0   boat           2           8           7
1    car           1           9           3
2  truck           5           4           2

In [15]: pd.merge(df3, df4, left_on='Type', right_on='type')
Out[15]: 
  Name  Year   Type   type  Parameter1  Parameter2  Parameter3
0    A  2012   boat   boat           2           8           7
1    D  2013   boat   boat           2           8           7
2    B  2013    car    car           1           9           3
3    C  2011  truck  truck           5           4           2

请注意,如果列名完全匹配,则

pd.merge(df3, df4)
默认情况下,

会合并共同共享的列名。