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

如何从CSV文件的时间字段中移除日期并支持批量处理

CSV数据处理:提取Time字段时间值及批量处理方案

一、解决CSV空格+分号的分隔问题

不管用Python内置csv模块还是pandas,都能轻松处理带空格的分号分隔:

  • 用csv模块:读取时指定delimiter=';',同时对每一行的字段做strip()去除前后空格
    import csv
    processed_rows = []
    with open('your_file.csv', 'r', newline='', encoding='utf-8') as f:
        reader = csv.reader(f, delimiter=';')
        header = [col.strip() for col in next(reader)]
        processed_rows.append(header)
        for row in reader:
            cleaned_row = [col.strip() for col in row]
            processed_rows.append(cleaned_row)
    
  • 用pandas:直接加skipinitialspace=True参数,自动忽略分隔符后的空格
    import pandas as pd
    df = pd.read_csv('your_file.csv', sep=';', skipinitialspace=True)
    

二、提取Time字段的时间值

针对Time字段日期 时间的格式,有两种简单实现方式:

1. 字符串分割法

直接按空格拆分字符串,取后半部分时间值:

  • csv模块处理时,在清洗行数据后修改Time字段:
    # 承接上面csv模块的代码,在cleaned_row处理后
    cleaned_row[0] = cleaned_row[0].split(' ')[1]  # 假设Time是第一列
    
  • pandas中直接拆分列:
    df['Time'] = df['Time'].str.split(' ', expand=True)[1]
    

2. 正则匹配法

如果日期格式不固定,用正则精准匹配HH:MM:SS格式的时间部分:

# pandas中使用正则提取
import re
df['Time'] = df['Time'].apply(lambda x: re.search(r'\d{2}:\d{2}:\d{2}', x).group())

三、5000条数据的批量处理支持

5000条属于小规模数据,两种方法都完全能胜任:

  • 内置csv模块:内存占用极低,处理速度快,无性能压力
  • pandas:处理十万级甚至百万级数据都轻松,5000条更是毫无问题

处理完成后,将结果写回新CSV文件:

  • csv模块写法:
    with open('processed_file.csv', 'w', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=';')
        writer.writerows(processed_rows)
    
  • pandas写法:
    df.to_csv('processed_file.csv', sep=';', index=False)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:24:28