我有两个数据框: 提醒:
DF1
X
Yes
No
Maybe
DF2
Y
Yes
No
Maybe
import pandas as pd
import numpy as np
train = pd.DataFrame(np.hstack([DF1,DF2]))
火车
0 1
Yes Yes
No No
Maybe Maybe
为什么我的标头从X和Y更改。traindf应该保留两个df的原始标头。我尝试使axis = 1和headers = true,但没有用。 pd.concat无效,因为我最终得到的行比原始df中的行多。
我也尝试过
df.reset_index()
但是即使在那之后,pd.concat给我的行也比原始的两个数据帧多。
答案 0 :(得分:0)
原因是 Numpy 方法无法在DataFrame上运行, 但在基础 Numpy 数组上,没有任何索引或 列数据(行和列名称的索引)。
要对此进行检查,请运行:np.hstack([DF1, DF2])
,您将获得:
array([['Yes', 'Yes'],
['No', 'No'],
['Maybe', 'Maybe']], dtype=object)
要保留列名,请使用例如:
pd.concat([DF1, DF2], axis=1)
这次结果将是:
X Y
0 Yes Yes
1 No No
2 Maybe Maybe