如何在Pandas数据框列中使用cleanco清洗公司名称
嘿,我懂你遇到的问题了——想把cleanco的公司名清洗能力用到Pandas数据框的列上,但直接调用clean_name的时候踩坑了对吧?别担心,我来一步步帮你搞定,刚好能得到你想要的简化小写结果。
解决方案步骤
1. 先搞定依赖安装
首先得把需要的库装上,打开终端跑这个命令:pip install cleanco pandas
2. 完整可运行的Python脚本
下面是完整代码,我会给你拆解关键细节:
首先导入必要的模块:
import pandas as pd from cleanco import cleanco
然后创建你给出的原始数据框:
# 原始数据 raw_data = {'company': ['ABC, Inc.', 'XYZ LTD']} df = pd.DataFrame(raw_data)
接下来是核心的清洗函数——这里要划重点:cleanco的clean_name是实例方法,不能直接调用,必须先把公司名字符串传入cleanco类创建实例,再调用clean_name方法,最后转成小写才能得到你想要的结果:
def clean_company(name): # 创建cleanco实例,自动去掉Inc./LTD这类后缀,提取核心名称 cleaned_core = cleanco(name).clean_name() # 转成小写格式 return cleaned_core.lower()
最后把函数应用到数据框列上,整理成你期望的df2:
# 把清洗函数批量应用到company列 df['cleaned_company'] = df['company'].apply(clean_company) # 生成你要的df2(只保留清洗后的列,重置索引) df2 = df['cleaned_company'].reset_index(drop=True)
运行这段代码后,打印df2就能得到:
0 abc 1 xyz Name: cleaned_company, dtype: object
为啥之前调用clean_name会报错?
大概率是你直接尝试调用cleanco.clean_name(name)了,但这个方法是属于cleanco实例的,不是类方法,必须先通过cleanco(name)实例化之后才能调用clean_name(),这是用这个库时很容易踩的小坑~
内容的提问来源于stack exchange,提问作者Sravee
相关产品推荐
相关产品推荐

