指定pandas DataFrame数据类型却不改变底层数据,意义何在?
问题说明
给定数据:
d = {'id': [5, '5'], 'id1': ['5', '5']}
创建DataFrame时指定dtype='object',但列内元素的原始类型并未被统一:
df4 = pd.DataFrame(data=d, dtype='object')
原因解析
Pandas的object类型是用于存储混合类型数据的通用容器,指定dtype='object'仅会将列的容器类型设置为object,不会自动强制列内所有元素转换为同一种类型。所以id列里的整数5和字符串'5'会保留各自的原始类型。
解决方案
如果需要统一列内元素的类型,需单独对目标列执行类型转换:
- 转换为字符串类型:
df4['id'] = df4['id'].astype(str)
- 转换为整数类型(需确保列内所有元素都可被转换为整数):
df4['id'] = df4['id'].astype(int)
内容的提问来源于stack exchange,提问作者theaddies
相关产品推荐
相关产品推荐

