You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用to_csv保存Pandas DataFrame时如何保留指定数据类型?

如何在存储Pandas DataFrame时保留指定数据类型

这个问题我之前踩过坑!核心原因是CSV是纯文本格式,根本不保存数据类型的元信息。你用astype(int8)改完类型存到CSV里,其实只把数字写进去了,类型标记完全没保留,所以用read_csv读取时,Pandas会默认根据数值范围推断成int64。给你两个实用的解决办法:

1. 使用二进制格式存储(推荐)

CSV适合人类查看,但不适合保留数据类型。换成Pandas支持的二进制格式,能完整保存DataFrame的结构和数据类型,读取速度也更快:

  • Pickle格式:Pandas原生支持,用法简单
# 存储
df.to_pickle('your_data.pkl')
# 读取,直接保留原类型
df = pd.read_pickle('your_data.pkl')
  • Feather格式:轻量快速,支持跨语言读取
# 存储
df.to_feather('your_data.feather')
# 读取
df = pd.read_feather('your_data.feather')
  • Parquet格式:适合大数据场景,压缩率高
# 存储
df.to_parquet('your_data.parquet')
# 读取
df = pd.read_parquet('your_data.parquet')

2. 读取CSV时显式指定数据类型

如果必须使用CSV格式,那就在read_csv时通过dtype参数强制指定目标列的数据类型:

# 读取时指定'A'列为int8类型
df = pd.read_csv('your_data.csv', dtype={'A': 'int8'})

这样读取后的A列就会保持你想要的int8类型了。

内容的提问来源于stack exchange,提问作者Feephy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:48:24