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

基于文件名提取指定子串并新增COMPANY NAME列的技术需求

从文件名提取指定子串并新增至文件列的实现方案

需求明确

处理X公司的待清洗文件时,需完成以下操作:

  • 从文件名(示例:RV_NETWORK_AXN TECHNOLOGY_7737463273272635)中提取位于第二个下划线之后、第三个下划线之前的公司名字串(示例:AXN TECHNOLOGY)
  • 在文件中新增COMPANY NAME列,并将提取到的公司名填入该列的所有行

Python(Pandas)实现

这是数据清洗场景下最常用的方案,适用于CSV/Excel等结构化文件:

import pandas as pd
import os

# 替换为你的实际文件路径
file_path = "RV_NETWORK_AXN TECHNOLOGY_7737463273272635.csv"
file_name = os.path.basename(file_path)

# 拆分文件名提取公司名:按下划线分割后取索引为2的元素(索引从0开始)
split_parts = file_name.split('_')
company_name = split_parts[2]

# 读取文件(Excel文件请用pd.read_excel)
df = pd.read_csv(file_path)

# 新增列并填充值
df['COMPANY NAME'] = company_name

# 保存处理后的文件(可选择覆盖原文件或指定新路径)
df.to_csv(f"processed_{file_name}", index=False)

Shell脚本实现

适合批量处理文件或在服务器环境下操作:

# 替换为你的目标文件名
FILE="RV_NETWORK_AXN TECHNOLOGY_7737463273272635.csv"

# 提取公司名:awk按下划线分割后取第3个字段(计数从1开始)
COMPANY_NAME=$(echo "$FILE" | awk -F '_' '{print $3}')

# 给CSV文件新增列:表头追加字段名,数据行追加公司名
awk -v comp="$COMPANY_NAME" 'BEGIN{OFS=","} NR==1{print $0,"COMPANY NAME"} NR>1{print $0,comp}' "$FILE" > "processed_$FILE"

注意事项

  • 若文件名中公司名部分不包含下划线,上述代码可直接生效;如果公司名可能包含下划线,需调整拆分逻辑:用split('_', 3)分割文件名,取第三部分后再截断到下一个下划线之前(例如split_parts = file_name.split('_', 3); company_name = split_parts[2].split('_')[0])
  • 处理Excel文件时,需注意文件格式(.xlsx/.xls)对应的读取/保存方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:10:27