1

我正在尝试将 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 仍然失败。

4

1 回答 1

2

这应该工作

pd.concat([df1, df2[colsOfInterest]], axis=1)
于 2013-08-02T14:19:12.923 回答