python - 将不同数据帧的行合并在一起

标签 python pandas merge concatenation

我有两个数据框:一个包含“名称”、“年份”和“类型”列,另一个具有不同的参数。有 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/

相关文章:

python - pandas DataFrame/Series 值格式化问题

data-structures - Mathematica中的条件数据合并

python - 如何让我的 flask-app 在我的站点子域上运行?

python - Django 之外的 Django 模型

python - 结合两个列表 Python

audio - 袜: merge two audio files with a pad

sql - Pandas 中的复杂连接

python - numpy loadtxt 和 savetxt 多个文件?

datetime - 在 pandas/numpy 中获取每个月的具体最后一天

python - 如何删除具有全部零值但不具有非零值的零的行