You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Python(Pandas DataFrame)拆分CSV列:提取年份新增列

解决方案:提取CSV中的年份并新增列

没问题,这个需求用Python就能轻松实现,我给你两种常用的方案,你可以根据自己的情况选择:

方案一:使用Pandas(推荐,适合数据量较大的情况)

Pandas是Python处理表格数据的神器,代码简洁高效,步骤如下:

  1. 首先确保你已经安装了Pandas,如果没有的话,在终端执行:
pip install pandas
  1. 编写处理代码:
import pandas as pd
import re

# 读取原始CSV文件,替换成你的输入文件路径
df = pd.read_csv('your_input.csv')

# 定义一个提取年份的函数:匹配括号内的四位数字
def get_year(text):
    # 用正则表达式查找格式为(XXXX)的年份,提取括号内的四位数字
    year_match = re.search(r'\((\d{4})\)', str(text))
    # 如果匹配到就返回年份,否则返回空值
    return year_match.group(1) if year_match else None

# 新增名为Year的第三列,将提取逻辑应用到第二列(Pandas列索引从0开始,第二列是iloc[:,1])
df['Year'] = df.iloc[:, 1].apply(get_year)

# 保存处理后的结果到新CSV,index=False表示不保存行索引
df.to_csv('your_output.csv', index=False)

代码说明:

  • 正则表达式r'\((\d{4})\)'专门匹配(四位数字)的格式,精准提取年份
  • str(text)确保即使第二列有非字符串类型的数据也不会报错
  • 如果某些行的第二列没有符合格式的年份,会自动填充None(保存到CSV里就是空单元格)

方案二:使用Python原生CSV模块(无需额外安装库)

如果你不想安装第三方库,用Python自带的csv模块也能实现:

import csv
import re

# 打开输入和输出文件,注意替换成你的文件路径
with open('your_input.csv', 'r', newline='', encoding='utf-8') as in_file, \
     open('your_output.csv', 'w', newline='', encoding='utf-8') as out_file:
    
    csv_reader = csv.reader(in_file)
    csv_writer = csv.writer(out_file)
    
    # 处理表头:新增Year列名
    header_row = next(csv_reader)
    header_row.append('Year')
    csv_writer.writerow(header_row)
    
    # 逐行处理数据
    for row in csv_reader:
        # 确保第二列存在(避免索引越界)
        if len(row) >= 2:
            column_text = row[1]
            year_match = re.search(r'\((\d{4})\)', str(column_text))
            extracted_year = year_match.group(1) if year_match else ''
        else:
            extracted_year = ''
        
        # 将年份添加到当前行,写入输出文件
        row.append(extracted_year)
        csv_writer.writerow(row)

注意事项:

  • 如果你的CSV文件有特殊编码(比如GBK),可以调整encoding参数
  • 要是遇到年份格式不统一的情况(比如有两位年份、或者括号外的年份),可以修改正则表达式来适配,比如如果需要匹配19XX20XX,可以把正则改成r'\((19|20)\d{2}\)'

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

火山引擎 最新活动