如何从Pandas DataFrame中删除换行符、“for sale”等多余文本?
Pandas汽车名称数据清洗方案
方案1:生成DataFrame前预处理(效率最高)
直接在爬取文本存入列表的环节完成清洗,修改原始代码如下:
car_names = soup.find_all("h3") data =[] for name in car_names: # 先后删除换行符、for sale字段,最后去除首尾空白 clean_text = name.text.replace("\n", "").replace("for sale", "").strip() data.append({"Car Name": clean_text}) df = pd.DataFrame(data) print(df)
注:如果你描述的
/n是实际存在的字符组合而非转义换行符\n,将上面代码中的\n改为/n即可。
方案2:已生成DataFrame后批量清洗
如果已经生成了DataFrame无需重新爬取,可直接对列做批量处理:
# 删除所有换行符 df["Car Name"] = df["Car Name"].str.replace("\n", "", regex=False) # 删除所有"for sale"字符 df["Car Name"] = df["Car Name"].str.replace("for sale", "", regex=False) # 去除字符串首尾多余空格 df["Car Name"] = df["Car Name"].str.strip()
如果需要匹配大小写不敏感的for sale变体(比如For Sale、FOR SALE),可开启正则匹配和忽略大小写参数:
df["Car Name"] = df["Car Name"].str.replace("for sale", "", regex=True, case=False)
内容的提问来源于stack exchange,提问作者Abdurehman Dar
相关产品推荐
相关产品推荐

