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

如何在Python中拆分CSV字段并在另一列返回指定前缀内容?

嘿,这个需求其实挺容易解决的,我给你几个不同场景下的方案,你挑适合自己的来用就行:

解决方案

1. Excel/Google Sheets 公式法

如果是在表格工具里处理CSV里的这些字符串,用这个公式就很方便:
=TEXTBEFORE(A1, "-", 3)
TEXTBEFORE函数的作用是找到指定分隔符的第N次出现位置,返回该位置之前的所有内容。这里我们指定分隔符为-,找第3次出现的位置,正好能得到你想要的A17W-1000010931-RED。

要是你用的是旧版Excel(还没支持TEXTBEFORE函数),可以试试这个组合公式:
=LEFT(A1,FIND("|",SUBSTITUTE(A1,"-","|",3))-1)
原理是先把字符串里的第3个-替换成|,再找到这个|的位置,最后取该位置左边的内容,效果是一样的。

2. Python 代码实现

如果是用Python批量处理CSV文件,这里有两种常见的实现方式:

用pandas库(适合处理大型CSV)

import pandas as pd

# 读取你的CSV文件
df = pd.read_csv("your_file.csv")
# 假设目标数据列名为"target_column",新增一列存储结果
df["result_column"] = df["target_column"].str.rsplit("-", n=1).str[0]
# 或者用拆分后拼接的方式
# df["result_column"] = df["target_column"].str.split("-", 3).str[:3].str.join("-")

# 保存处理后的CSV
df.to_csv("processed_file.csv", index=False)

两种写法都能达到目的:第一种是从字符串右侧拆分1次,取前面的部分;第二种是最多拆分3次,取前3个拆分后的元素再用-连接起来。

纯Python字符串处理(适合单条或少量数据)

original_str = "A17W-1000010931-RED-14"
# 方法1:拆分后取前3部分再拼接
result = "-".join(original_str.split("-")[:3])
# 方法2:从右侧拆分1次取前面的内容
# result = original_str.rsplit("-", 1)[0]

print(result)  # 输出: A17W-1000010931-RED

3. 命令行工具(awk)

要是习惯用命令行处理CSV,可以用awk快速搞定:

awk -F'-' '{print $1"-"$2"-"$3}' your_file.csv

这里用-作为字段分隔符,直接输出前3个字段并以-连接,就能得到你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:59:30