当列名不同时,如何将数据框附加到另一个(具有相同的列大小)

时间:2017-02-10 19:42:10

标签: python pandas dataframe

有没有办法合并两个具有相同列数但名称不同的数据框? concatmergejoin方法似乎不适用于此任务。例如,我想将这两者结合起来:

#dataframe1:
columnA | columnB
15      | 23

#dataframe2:
columnC | columnD
12      | 29

进入这个:

#dataframe3:
anyColumnName1 | anyColumnName1
15             | 23
12             | 29

请注意,我的 90列

3 个答案:

答案 0 :(得分:2)

您可以先重命名第二个数据框的列。

如果列数相同,则只需:

dataframe2.columns = dataframe1.columns

然后连接它们。

答案 1 :(得分:2)

您可以将numpy.concatenateDataFrame构造函数一起使用:

print (np.concatenate([df1, df2]))
[[15 23]
 [12 29]]

df = pd.DataFrame(np.concatenate([df1, df2]), columns=['a','b'])
print (df)
    a   b
0  15  23
1  12  29

答案 2 :(得分:2)

您可以使用append通过首先重命名第二个数据帧的列。

In [304]: df1.append(df2.rename(columns=dict(zip(df2.columns, df1.columns))))
Out[304]:
   columnA  columnB
0       15       23
0       12       29

详情。

In [308]: df1
Out[308]:
   columnA  columnB
0       15       23

In [309]: df2
Out[309]:
   columnC  columnD
0       12       29

In [310]: dict(zip(df2.columns, df1.columns))
Out[310]: {'columnC': 'columnA', 'columnD': 'columnB'}

In [311]: df2.rename(columns=dict(zip(df2.columns, df1.columns)))
Out[311]:
   columnA  columnB
0       12       29