Pandas:水平合并两个数据框架

57

我有两个Pandas DataFrames,每个都有不同的列。 我想把它们水平拼接在一起(它们每个都有相同数量的行,所以这不应该是一个问题)。

肯定有一个简单的方法可以做到这一点,但是我已经查阅了文档,concat不是我要找的(我想)。

有任何想法吗?

谢谢!


14
您希望使用 pd.concat([df1, df2], axis=1) 来水平拼接数据框。 - EdChum
11
如果索引不同,您可能会遇到索引问题。然后,请使用df1的索引设置df2的索引:pd.concat([df1, df2.set_index(df1.index)], axis=1) - ivankeller
1个回答

89

concat 确实就是你要找的,你只需要给“axis”参数传递一个不同于默认值的值即可。以下是代码示例:

import pandas as pd

df1 = pd.DataFrame({
    'A': [1,2,3,4,5],
    'B': [1,2,3,4,5]
})

df2 = pd.DataFrame({
    'C': [1,2,3,4,5],
    'D': [1,2,3,4,5]
})

df_concat = pd.concat([df1, df2], axis=1)

print(df_concat)

结果为:

   A  B  C  D
0  1  1  1  1
1  2  2  2  2
2  3  3  3  3
3  4  4  4  4
4  5  5  5  5

3
如果您能在代码片段旁边发布结果,将更加有用,这样其他人就不必自行复制和运行代码来验证它。请注意,翻译时已经尽可能保留了原文的意思和表达方式,不含解释或其他额外内容。 - Phoenix
3
如果您能够运行这个示例,您可以编辑答案并在那里添加结果。 - Ufos
1
没问题,刚刚更新了。 - nslamberth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接