我有两个数据框:一个包含“名称”、“年份”和“类型”列,另一个具有不同的参数。有 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 行。是否有机会将它们合并到一行中?感谢您的回答!
最佳答案
如果df3
有一个Type
列,df4
有一个type
列,那么这两个DataFrame可以是合并为
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)
默认情况下会合并共享的列名称。
关于python - 将不同数据帧的行合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347149/