我正在尝试将 3 列从一个数据帧附加到另一个数据帧的末尾,类似于以下内容:
df1:
a b c d
1 1 4 1
2 4 1 5
df2[colsOfInterest]:
e f
3 5
1 1
使用 newDF = pd.concat([df1,df2[colsOfInterest]])
我期待:
a b c d e f
1 1 4 1 3 5
2 4 1 5 1 1
但我得到:
a b c d e f
1 1 4 1 NA NA
2 4 1 5 NA NA
NA NA NA NA 3 5
NA NA NA NA 1 1
更新: 虽然我不能发布我的数据帧,但我似乎已经将其缩小到数据类型或一致性。如果我使用 to_csv 将两个 df 写入文件,然后使用 read_csv 将它们读回新文件,则 concat 过程可以正常工作。
其中一个是完全对象类型,另一个是 float64。
当重新阅读它们时,它们变成了 float64、int64、object 的混合体。如果我尝试获取原件,并通过 .astype(str).convert_numeric 将它们转换为数字类型,则类型与读取的版本匹配,但是 concat 仍然失败。