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

如何移除TXT文件日期内的逗号以适配pd.read_csv导入Pandas?

问题

我有一个包含如下格式日期列的TXT文件:

May 15, 2023, May 22, 2023
August 14, 2023, August 21, 2023
November 14, 2023, November 21, 2023
February 14, 2024, February 22, 2024

日期中日和年之间的逗号导致难以使用pd.read_csv()将数据导入Pandas。文件中还有需忽略的其他数据,因此无法对整个文档执行操作。我需要遍历文件,找到该格式的日期,移除日期内的逗号,同时保留日期之间的逗号,请问有什么简单的实现方法?

解决方案

用Python的re模块写个正则表达式就能精准搞定——只替换日期内部的逗号,完全不碰日期之间的分隔逗号。

思路

核心是匹配「日, 年」这种结构里的逗号,把15, 2023改成15 2023,而2023, May这种日期之间的逗号保留不动。提供两种正则策略,按需选择:

  • 通用版:匹配所有「数字, 四位年份」的结构,适合确认其他内容不会有类似格式的场景
  • 精准版:匹配完整的「月份 日, 年」结构,避免误改无关内容

代码实现

通用版(简单快速)

import re
import pandas as pd

# 匹配「数字, 四位年份」的正则
pattern = re.compile(r'(\d+), (\d{4})')

processed_lines = []
with open('your_file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        # 只替换每行里日期内部的逗号
        fixed_line = pattern.sub(r'\1 \2', line)
        processed_lines.append(fixed_line)

# 写入处理后的文件
with open('fixed_dates.txt', 'w', encoding='utf-8') as f:
    f.writelines(processed_lines)

# 正常导入Pandas
df = pd.read_csv('fixed_dates.txt', sep=',')  # 可根据实际数据调整参数

精准版(避免误替换)

如果文件里其他内容也有「数字, 四位年份」的结构,就用这个匹配完整英文月份的正则:

import re
import pandas as pd

# 匹配「英文月份 日, 年」的完整结构
pattern = re.compile(r'([A-Z][a-z]+) (\d+), (\d{4})')

processed_lines = []
with open('your_file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        fixed_line = pattern.sub(r'\1 \2 \3', line)
        processed_lines.append(fixed_line)

# 写入和导入步骤同上
with open('fixed_dates.txt', 'w', encoding='utf-8') as f:
    f.writelines(processed_lines)

df = pd.read_csv('fixed_dates.txt', sep=',')

处理后,日期内部的逗号会被彻底移除,日期之间的分隔逗号完全保留,能直接用pd.read_csv()正常导入数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:17:27