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

Pandas将DataFrame转CSV时数字自动转为月份的问题求助

解决Pandas导出CSV时数字被识别为月份的问题

嘿,这个问题我之前也踩过坑!其实根本不是Pandas转CSV的问题——CSV本身是纯文本格式,不会篡改你的数据。问题出在你打开CSV的工具(比如Excel),它会自动把看起来像日期的字符串(比如03-10、12-05这类带横杠的数字组合)识别成日期格式,才会显示成月份相关的内容。

下面给你几个实用的解决方案:

方案1:导出时给易混淆列添加文本标识

在导出CSV前,把那些容易被误判的列转换成带单引号前缀的字符串,这样Excel就会把它当成纯文本处理,不会自动转格式。示例代码:

import pandas as pd
import csv

# 假设你的DataFrame是df,'problem_col'是出问题的目标列
df['problem_col'] = "'" + df['problem_col'].astype(str)

# 导出CSV,避免自动添加双引号
df.to_csv('output.csv', index=False, quoting=csv.QUOTE_NONE, escapechar='\\')

方案2:构建DataFrame时就指定列类型为字符串

从爬取内容构建DataFrame的阶段,直接把可能出问题的列指定为字符串类型,从源头避免格式混淆。结合你的爬取代码示例:

import pandas as pd
# (你的爬取代码:requests、BeautifulSoup部分保持不变)

data = []
for container in containers:
    # 提取你需要的字段,比如比赛编号/日期字符串
    target_str = container.find(你需要的标签).text.strip()
    data.append({'target_column': target_str})

# 构建DataFrame时强制指定列类型为字符串
df = pd.DataFrame(data, dtype={'target_column': str})

# 正常导出CSV
df.to_csv('result.csv', index=False)

方案3:Excel导入时手动设置格式

如果不想修改代码,也可以在Excel里导入CSV时手动干预:

  • 打开Excel,选择「数据」→「自文本/CSV」
  • 选中你的CSV文件,进入导入向导
  • 在「数据类型检测」步骤,把容易出问题的列的类型改成「文本」,再完成导入

这样Excel就不会自作主张把数字转成月份啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:13:16