Python 2.7:如何正确拆分CSV文件并处理提取的字符串信息
我来帮你搞定这个CSV数据拆分和清理的问题!下面是针对需求的具体解决方案:
处理CSV文本拆分与特殊字符清理
假设你的CSV里待处理的原始数据列(比如命名为raw_content)格式类似Alexander%Back-Forsvar这类,我们可以用Python的pandas库高效完成拆分、清理并输出符合要求的CSV,步骤如下:
1. 先准备依赖(如果还没安装)
如果你的环境里没有pandas,先通过命令行安装:
pip install pandas
2. 完整处理代码示例
这段代码会读取你的原始CSV,自动拆分姓名、职位并清理掉%和-,最后输出整理好的新CSV:
import pandas as pd # 替换成你的原始CSV文件路径 input_csv_path = "your_raw_data.csv" # 替换成你想要保存的输出文件路径 output_csv_path = "cleaned_result.csv" # 读取原始CSV df = pd.read_csv(input_csv_path) # 定义数据处理函数:拆分+清理特殊字符 def split_clean_data(raw_str): # 先把%换成空格(还原姓名的正常格式),把-换成临时分隔符 temp_str = raw_str.replace("%", " ").replace("-", "||") # 按临时分隔符拆分姓名和职位 name_part, position_part = temp_str.split("||") # 清理可能的多余空格并返回 return pd.Series([name_part.strip(), position_part.strip()]) # 把处理后的结果存入新的「姓名」「职位」列 df[["姓名", "职位"]] = df["raw_content"].apply(split_clean_data) # 输出整理好的CSV(不保留索引,用UTF-8编码避免乱码) df.to_csv(output_csv_path, index=False, encoding="utf-8")
3. 关键逻辑说明
replace("%", " "):把姓名中的%替换成空格,让Alexander%Back还原成正常的Alexander Backreplace("-", "||"):用一个不会出现在内容里的临时分隔符替换-,方便精准拆分姓名和职位split("||"):按临时分隔符拆分出两部分,再用strip()去除可能的首尾空格
4. 适配不同格式的小调整
如果你的原始字符串格式有细微差异,可以灵活修改处理函数:
- 如果姓名里没有
%,只是用-分隔姓名和职位:直接用raw_str.split("-")拆分即可 - 如果有复杂的特殊符号组合,也可以用正则表达式匹配,比如:
import re def split_clean_data(raw_str): # 先去掉所有%和- cleaned = re.sub(r"[%\-]", "", raw_str) # 假设姓名在前、职位在后,按最后一个空格拆分(根据实际格式调整) name = " ".join(cleaned.split()[:-1]).strip() position = cleaned.split()[-1].strip() return pd.Series([name, position])
这样处理后,你的CSV就能得到完全符合要求的姓名和职位列啦!
内容的提问来源于stack exchange,提问作者Bab
相关产品推荐
相关产品推荐

