首页 > 解决方案 > 在将 DataFrame 与可为空的整数连接时保留数据类型

问题描述

如何在将 DataFrame 与可空整数连接时保留数据类型?

# input data
import pandas as pd
t1 = pd.DataFrame(index=[0], data={'x':[1]}, dtype='UInt8')
t2 = pd.DataFrame(index=[1], data={'y':[1]}, dtype='UInt8')

'''actual result'''
print(t1.dtypes)
# x    UInt8
# dtype: object
print(t2.dtypes)
# y    UInt8
# dtype: object
print(pd.concat([t1,t2], join='outer', sort=False).dtypes)
# x    object
# y    object
# dtype: object

为什么将连接结果的数据类型更改为object,如何确保在连接过程中保留数据类型?即我希望数据类型x和连接后y保留UInt8

'''expected result'''
print(pd.concat([t1,t2], join='outer', sort=False).dtypes)
# x    UInt8
# y    UInt8
# dtype: object

非常感谢您的帮助!

标签: pythonpandasdataframeconcatenationmissing-data

解决方案


推荐阅读