如何保存已完成日期解析的Pandas DataFrame?
保存已解析日期的DataFrame,避免重复耗时解析
嘿,太懂这种重复解析日期的痛苦了——10分钟的等待真的让人抓狂!既然你已经把date列正确解析成datetime类型了,直接用下面这些高效的二进制格式保存DataFrame就行,下次加载时会直接保留所有数据类型,完全不用再跑日期解析步骤:
方法1:Python原生Pickle格式
这是最直接的选择,完美适配Pandas,能保留所有数据类型细节:
- 保存已解析的DataFrame:
train.to_pickle('sales_train_parsed.pkl') - 后续加载使用:
train = pd.read_pickle('sales_train_parsed.pkl')
优点:操作简单,无需额外安装依赖(Pandas自带支持),100%保留数据结构
方法2:Feather格式(轻量快速)
Feather是专门为DataFrame设计的跨语言格式,读写速度极快,文件大小也很友好:
- 保存:
train.to_feather('sales_train_parsed.feather') - 加载:
train = pd.read_feather('sales_train_parsed.feather')
优点:读写速度比Pickle更快,支持Python和R跨语言使用,适合中小型数据集
方法3:Parquet格式(大数据友好)
如果你的数据集很大,Parquet的列式存储和高压缩率会帮你省不少空间,同时保留datetime类型:
- 保存(需要先安装
pyarrow或fastparquet依赖,比如pip install pyarrow):train.to_parquet('sales_train_parsed.parquet') - 加载:
train = pd.read_parquet('sales_train_parsed.parquet')
优点:压缩率高,适合超大型数据集,支持Hadoop、Spark等大数据工具
小提醒
- 这些都是二进制格式,别用文本编辑器打开哦,直接用Pandas的读写方法加载就行
- 建议文件名加上
_parsed这类后缀,和原始CSV区分开,避免搞混
内容的提问来源于stack exchange,提问作者ambigus9
相关产品推荐
相关产品推荐

