【发布时间】:2020-02-23 09:44:20
【问题描述】:
例如,有两个数据框,即 df1(n x m1) 和 df2(n x m2),它们之间没有公共列。那么如何合并数据帧,使输出数据帧的形状恰好是 n x (m1+m2) ?
df1 = pd.DataFrame({
'col_1': [0, 1, 2, 3],
'col_2': [4, 5, 6, 7]})
df2 = pd.DataFrame({
'col_3': [6, 4, 3, 1],
'col_4': [9, 3, 7, 1],
'col_5': [19, 13, 17, 10]})
这个社区发布了很多关于以下问题的解决方案,在网络上也提供了解决方案。然而,保留上述维度 (n x (m1+m2)) 的资源却出奇地难以找到。 对于上面的示例或小尺寸数据样本,下面的合并方法表现完美。
df1. merge(df2, how='inner', left_index= True, right_index= True)
但合并方法不适用于具有大量元素的高维数据帧。以 kaggle 房屋定价数据集为例
https://www.kaggle.com/c/house-prices-advanced-regression-techniques
在分离数字和分类特征(数据框)后,当尝试在保持行大小相同的情况下合并它们时,它变成两个数据框的行总和的两倍(2 *(n + n)) 用于以下合并方法。他们是否有任何其他方式或适当的方法可以适当地完成任务?
【问题讨论】:
-
你想并排连接它们吗?
-
你的预期输出是什么?
-
是的。只想插入来自另一个数据帧的所有列,当前数据帧之间没有公共列。
-
你试过简单的
df1.join(df2)吗? -
pd.concat([df1, df2], axis=1)
标签: python pandas dataframe merge