有没有办法合并两个具有相同列数但名称不同的数据框? concat
,merge
和join
方法似乎不适用于此任务。例如,我想将这两者结合起来:
#dataframe1:
columnA | columnB
15 | 23
#dataframe2:
columnC | columnD
12 | 29
进入这个:
#dataframe3:
anyColumnName1 | anyColumnName1
15 | 23
12 | 29
请注意,我的 90列。
答案 0 :(得分:2)
您可以先重命名第二个数据框的列。
如果列数相同,则只需:
dataframe2.columns = dataframe1.columns
然后连接它们。
答案 1 :(得分:2)
您可以将numpy.concatenate
与DataFrame
构造函数一起使用:
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