基础入门
把前面已经整理好的结果表稳定导出为 CSV,并通过读回检查确认结构没有丢失,完成一条可复用的数据处理闭环。
第 8 讲是这套 pandas 入门短课的收束课,目标是:把前面已经整理、清洗、加列、排序、汇总过的结果表真正导出成一份本地文件。做到这一步,你就不再只是“在内存里临时操作一张表”,而是已经得到了一份后面还能继续拿去分析、回测或分享的中间成果。
学完这一讲后,你可以直接完成下面几件事:
前 7 讲已经把这张表从原始 CSV 推到了一个更像“工作成果”的状态:
最自然的收束动作,就是把这些成果保存下来。因为真实工作里,一张清洗后的表往往不会只用一次,而是会被后续脚本、可视化或回测继续复用。第 8 讲要你建立的,就是这种“把中间成果沉淀下来”的意识。
这一讲你可以导出两类表中的任意一种:
sorted_df。monthly_return。为了让收尾更完整,这里建议优先导出主表:
export_df = sorted_df.copy()
print(export_df.head())
导出这一步最好形成固定闭环:起名、写出、读回、比对。只做前两步,往往只能说明文件在磁盘上,不能说明它后面还好用。
output_path = 'cleaned_market_data.csv'
不要用太随意的文件名。第 8 讲更推荐你起一个一眼就知道内容和用途的名字。
export_df.to_csv(output_path, index=False, encoding='utf-8-sig')
这里最值得注意的是两点:
index=False,避免把 DataFrame 索引额外写进文件。utf-8-sig,在很多本地打开场景下对中文更友好。check_df = pd.read_csv(output_path)
print(check_df.head())
不要只看文件已经生成就结束。读回检查能帮助你确认,这份导出结果不是“看起来成功了”,而是真的还能继续被 pandas 使用。
print(export_df.shape, check_df.shape)
print(export_df.columns.tolist())
print(check_df.columns.tolist())
这一步能帮助你迅速确认导出前后的行列结构是否一致。
验证导出是否成功,不能只看磁盘上有没有文件,还要确认它读得回来、结构对得上、关键列没有在来回读写时丢掉。
from pathlib import Path
assert Path(output_path).exists()
assert isinstance(check_df, pd.DataFrame)
assert len(export_df) == len(check_df)
assert set(export_df.columns).issubset(set(check_df.columns))
很多入门者会把“文件已经写出去”当成结束,但在真实工作里,导出真正有价值的前提,是这份文件下一次还能被稳定读回来继续处理。
不一定。文件存在只说明“写出来了”,不说明“结构还正确、后面还能继续用”。
对这套入门短课来说,索引更多是 pandas 内部的行标记,而不是业务字段。导出时通常不需要额外带出去。
因为它在本地很多打开场景里更稳,尤其是你以后可能还会用别的工具临时查看导出结果。
可以,但第 8 讲当前更推荐 CSV。因为它更轻、更通用,也更适合作为后续脚本继续读取的中间格式。
from pathlib import Path
import pandas as pd
def export_csv_and_reload(df: pd.DataFrame, path: str) -> pd.DataFrame:
df.to_csv(path, index=False, encoding='utf-8-sig')
if not Path(path).exists():
raise FileNotFoundError(path)
return pd.read_csv(path)
check_df = export_csv_and_reload(sorted_df, 'cleaned_market_data.csv')
print(check_df.head())
一套 pandas 入门练习如果只停在 Notebook 或交互窗口里,其实还没有真正形成可复用成果。第 8 讲把导出放在收尾位置,就是为了让你体验一次完整的数据处理闭环:从原始 CSV 进,到清洗结果表出。
这也是为什么第 8 讲适合作为本系列收束课。它没有额外拔高难度,却把前面每一步的成果都落进了一份真正能拿走的文件里。
如果回头看这 8 讲,会发现它们已经形成了一条非常完整的 pandas 入门路径:
也正因为这样,第 8 讲虽然只是一条 to_csv(),但它其实是整条数据处理链的出口。
如果你现在已经能把前面整理好的结果表稳定导出为 CSV,并读回确认结构没丢,那第 8 讲就已经完成了整套 pandas 入门短课的收束任务。
本讲是《pandas金融数据入门短课》的第 8/8 讲,当前主题是《导出清洗后的行情表》。
上一讲:第 7 讲《按月份统计平均收益》。
这是本系列的收束课,目标是让你从“会在 DataFrame 上做基础处理”进一步走到“会把处理成果稳定沉淀成可复用文件”。
风险揭示与免责声明
本页面内容仅用于量化研究与技术交流,旨在展示研究方法与流程,不构成对任何金融产品、证券或衍生品的要约、招揽、推荐或保证。
本文所涉历史数据、回测结果与示例参数不代表未来表现,也不应作为投资决策依据。
市场存在波动、流动性与执行偏差等不确定性,任何策略均可能出现收益波动或阶段性失效。
读者应结合自身风险承受能力进行独立判断,并在必要时咨询持牌专业机构意见。