工作任务:下面表格中的,、分开的内容进行批量分列
在chatgpt中输入提示词:
你是一个Python编程专家,完成一个脚本编写任务,具体步骤如下:
读取Excel文件:""F:\AI自媒体内容\AI行业数据分析\AI_Industry_Analysis - 副本.xlsx""
读取A列单元格内容,删除单元格内容后面的数字,比如:单元格内容为“公司公告,国海证券研究所 61”,删除“61”;
对单元格内容进行分拆:
如果单元格内容中有“、”,就根据“、”来分拆到多个列,比如:“金融界、微软官网、澎湃新闻、财联社、界面新闻、每日经济新闻、科创板日报、IT之家、砍柴网、网易科技、网易新闻” ;
如果单元格内容中有“,”,就根据“,”来分拆到多个列,比如:“埃摩森猎头圈”微信公众号,界面新闻,36氪,新浪科技,天风证券研究所;
如果单元格内容中有空格,就根据空格来分拆到多个列,比如:“ckdd 微软亚洲研究员 联讯证券”;
单元格分拆完成后,把所有分拆出去的单元格内容追加到A列当前内容的后面;
然后对A列数据进行分类汇总,汇总方式为计数,分类汇总结果保存到Excel文件:F:\AI自媒体内容\AI行业数据分析\AI行业数据来源.xlsx
注意:
每一步都要输出信息
处理异常和错误:确保你的代码能够处理可能遇到的异常,如文件损坏、权限问题等。
ChatGPT生成的Python源代码:
import pandas as pd
import re
import logging
# 设置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# 文件路径
input_file = r"F:\AI自媒体内容\AI行业数据分析\AI_Industry_Analysis - 副本.xlsx"
output_file = r"F:\AI自媒体内容\AI行业数据分析\AI行业数据来源.xlsx"
try:
# 读取Excel文件
http://
logging.info
(f"读取 Excel 文件: {input_file}")
df = pd.read_excel(input_file)
# 检查列名并找到第一列
if df.empty:
logging.error("Excel 文件是空的。")
else:
first_column_name = df.columns[0]
http://
logging.info
(f"使用第一个列名: {first_column_name}")
# 删除第一列单元格内容后面的数字
http://
logging.info
("删除单元格内容后面的数字")
df[first_column_name] = df[first_column_name].apply(lambda x: re.sub(r'\d+', '', str(x)).strip())
# 初始化一个列表存储拆分后的数据
split_data = []
# 分拆单元格内容
http://
logging.info
("分拆单元格内容")
for cell in df[first_column_name]:
if '、' in cell:
split_items = cell.split('、')
elif ',' in cell:
split_items = cell.split(',')
elif ' ' in cell:
split_items = cell.split()
else:
split_items = [cell]
split_data.append(split_items)
# 创建一个新的 DataFrame 用于存储拆分后的内容
split_df = pd.DataFrame(split_data)
# 将拆分后的内容合并回第一列
http://
logging.info
("合并拆分后的内容到第一列")
df[first_column_name] = split_df.apply(lambda x: ', '.join(x.dropna()), axis=1)
# 拆分后的内容追加到第一列当前内容的后面
http://
logging.info
("将拆分后的内容追加到第一列当前内容的后面")
df_expanded = pd.DataFrame()