AI办公自动化:Excel表格数据批量整理分列

工作任务:下面表格中的,、分开的内容进行批量分列

在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()

df_expanded[first_column_name] = split_df.stack().reset_index(drop=True)

# 分类汇总

http://logging.info("对第一列数据进行分类汇总")

summary = df_expanded[first_column_name].value_counts().reset_index()

summary.columns = ['数据来源', '计数']

# 保存到Excel文件

http://logging.info(f"保存分类汇总结果到 Excel 文件: {output_file}")

summary.to_excel(output_file, index=False)

except FileNotFoundError as e:

logging.error(f"文件未找到: {e}")

except PermissionError as e:

logging.error(f"文件权限错误: {e}")

except Exception as e:

logging.error(f"处理文件时出错: {e}")

在vscode中运行:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值