前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI办公自动化:Excel表格数据批量整理分列

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

作者头像
AIGC部落
发布2024-06-24 19:45:55
730
发布2024-06-24 19:45:55
举报
文章被收录于专栏:Dance with GenAIDance with GenAI

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

在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中运行:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档