帮对象处理所需数据时写的代码——第七弹(实现功能:Python将公司名称拆分成地点,品牌名称,行业名称,公司后缀四部分)
1.安装库
首先安装在命令控制端: pip install -U companynameparser
然后对库进行更新:pip install --upgrade pip
2.导入库和模块
import pandas as pd
: 导入pandas库,用于数据处理和读写Excel文件。import companynameparser
: 导入用于解析公司名称的自定义模块companynameparser。from tqdm import tqdm
: 导入tqdm库,用于显示进度条,让程序执行过程可视化import pandas as pd import companynameparser from tqdm import tqdm
3.parse_company_names函数
arse_company_names(input_file, output_file)
: 这是一个自定义函数,用于解析公司名称并保存结果到新的Excel文件- 函数参数:
input_file
: 输入的Excel文件路径,包含原始数据output_file
: 输出的Excel文件路径,保存解析结果
def parse_company_names(input_file, output_file):
# 读取原始表格中的数据
df = pd.read_excel(input_file)
# 确定包含公司名称的列
company_column = '企业名称' # 请根据实际的列名进行修改
# 新增用于保存解析结果的列
df['place'] = ''
df['brand'] = ''
df['trade'] = ''
df['suffix'] = ''
# 获取总行数,用于进度条显示
total_rows = len(df)
# 遍历公司名称列,解析每个公司名称,并将结果保存到对应的新列中
for index, name in tqdm(df[company_column].items(), total=total_rows, desc="Processing"):
r = companynameparser.parse(name)
df.at[index, 'place'] = r['place']
df.at[index, 'brand'] = r['brand']
df.at[index, 'trade'] = r['trade']
df.at[index, 'suffix'] = r['suffix']
# 将结果保存到新的Excel表格
df.to_excel(output_file, index=False, engine='openpyxl')
# 运行完毕后打印提示信息
print("Finished!")
4.主程序部分
- 这是脚本的主程序部分,用于指定输入和输出文件路径,并调用parse_company_names函数执行解析操作。
input_file_path
: 输入文件的路径,即待解析的Excel文件路径。output_file_path
: 输出文件的路径,即保存解析结果的新Excel文件路径。- 程序调用:
parse_company_names(input_file_path, output_file_path)
if __name__ == '__main__':
input_file_path = "C:\\Users\\desk\\Desktop\\企业名称.xlsx"
output_file_path = "C:\\Users\\desk\\Desktop\\企业分开.xlsx"
parse_company_names(input_file_path, output_file_path)
5.代码运行实例
输入文件:
输出文件样式:
6.总结
通过调用companynameparser模块解析公司名称,并将解析结果保存到新的Excel文件中。首先读取原始Excel文件,然后遍历公司名称列,解析每个公司名称的地点、品牌、行业和后缀,并将结果保存到新的Excel文件。整个过程中,使用tqdm库显示进度条,使得程序运行过程可视化,更加友好。
完整代码
import pandas as pd
import companynameparser
from tqdm import tqdm
def parse_company_names(input_file, output_file):
# 读取原始表格中的数据
df = pd.read_excel(input_file)
# 确定包含公司名称的列
company_column = '企业名称' # 请根据实际的列名进行修改
# 新增用于保存解析结果的列
df['place'] = ''
df['brand'] = ''
df['trade'] = ''
df['suffix'] = ''
# 获取总行数,用于进度条显示
total_rows = len(df)
# 遍历公司名称列,解析每个公司名称,并将结果保存到对应的新列中
for index, name in tqdm(df[company_column].items(), total=total_rows, desc="Processing"):
r = companynameparser.parse(name)
df.at[index, 'place'] = r['place']
df.at[index, 'brand'] = r['brand']
df.at[index, 'trade'] = r['trade']
df.at[index, 'suffix'] = r['suffix']
# 将结果保存到新的Excel表格
df.to_excel(output_file, index=False, engine='openpyxl')
# 运行完毕后打印提示信息
print("Finished!")
if __name__ == '__main__':
input_file_path = "C:\\Users\\desk\\Desktop\\企业名称.xlsx"
output_file_path = "C:\\Users\\desk\\Desktop\\企业分开.xlsx"
parse_company_names(input_file_path, output_file_path)
上述代码库参考文章:https://github.com/shibing624/companynameparser
如有不足,欢迎留言指正交流哈!!!