追加到数据框时如何保留列的数据类型?

时间:2018-10-25 15:57:12

标签: python-3.x pandas dataframe

我有2个以点为索引的数据框

df1=

points          a       b         c       d                                            
x864           0.47  'caramel'   '0'     NaN

df2=

points          a       b         c       d                                            
x861           0.47  'caram12'   '0'     NaN
x862           0.69  'choco12'   '0'     '0'
x863           0.82  'choco10'   '1'     NaN
x865           0.06  'choco12'   '0'     '0'
x866           0.73  'caram10'   '1'     '1'
x867           0.47  'caram12'   '0'     NaN

我有一个清单

indexlist=['x867','x863']

当我检查他们的列数据类型时,得到以下输出

print(D.dtypes)
print(Xdash_rem.dtypes)

a    float64
b    object
c    object
d    object
dtype: object

a    float64
b    object
c    object
d    object
dtype: object

我想基于列表中的元素追加到df1并添加以下代码:

for ele2 in indexlist:
    if ele2 not in df1.index:
        df1 = df1.append(df2.loc[ele2])

再次尝试查看数据类型时,得到以下输出:

a    float64
b    object
c    object
d    float64
dtype: object

我知道附加会更改数据类型。但是有什么方法可以保留数据类型而无需修改。我的意思是我需要将列d的数据类型设为object

0 个答案:

没有答案