分享

零代码编程:用ChatGPT来对excel数据进行统计分析整理

 AIGC部落 2023-09-19 发布于广东

一个表格,里面是按义工名称填写的可以值班的时间表。

在排班的时候,需要按照时间来排序,统计有哪些义工可以值班。

这项工作手动操作非常繁琐,耗费时间,来交给ChatGPT吧。在ChatGPT中输入提示词:

E盘有一个表格:义工值班时间.xlsx

表格的第1行第1列到第1行第45列是家长义工的姓名,如:赵钱孙;

表格的第2行第1列到第2行第45列是家长义工可以值班的时间,如:

周二 16:30-17:00,周三 16:30-17:00,周四 16:30-17:00

将这个表格里面的数据按照家长义工可以值班的时间进行统计,统计不同时间段可以值班的家长姓名,然后生成一个新表格:new义工值班时间.xlsx

表格第1行第1列到第1行第10列是家长义工的值班时间:周一 11:35-12:00,周二 11:35-12:00,周三 11:35-12:00,周四 11:35-12:00,周五 11:35-12:00,周一 16:30-17:00,周二 16:30-17:00,周三 16:30-17:00,周四 16:30-17:00,周五 16:30-17:00

第2行第1列到第2行第10列是可以值班的家长义工;

义工值班时间.xlsx表中的数据样例如下:

XXX周一 11:35-12:00,周二 11:35-12:00,周三 11:35-12:00,周四 11:35-12:00,周五 11:35-12:00

YYY周二 11:35-12:00

ZZZ周五 16:30-17:00

new义工值班时间.xlsx 的数据样例如下:

周一 11:35-12:00 XXX,

周二 11:35-12:00 XXX,YYY

周三 11:35-12:00 XXX

注意:

某些家长的时间段为空,这种情况就进行随机安排;

pandas.DataFrame.append 在未来的 pandas 版本中将被弃用,建议使用 pandas.concat 来替换;

在处理值班时间时要检测是否为空,如果为空则跳过,不进行拆分操作;

每一个步骤都要输出相关信息;

ChatGPT给出的源代码如下:

import pandas as pd

import numpy as np

# 读取原始的 Excel 文件

df = pd.read_excel('E:/义工值班时间.xlsx', header=None)

print("读取原始的Excel文件完成")

# 创建一个新的 DataFrame 来保存新的数据

new_df = pd.DataFrame(columns=['Time', 'Volunteers'])

# 对原始的 DataFrame 进行迭代,统计各个时间段的义工

for _, row in df.iterrows():

volunteer = row[0]

if pd.isna(row[1]): # 检查时间是否为空,如果为空则跳过

continue

times = row[1].split(',')

for time in times:

if time not in new_df['Time'].values:

# 使用 pandas.concat 替换 DataFrame.append

new_df = pd.concat([new_df, pd.DataFrame({'Time': [time], 'Volunteers': [volunteer]})], ignore_index=True)

else:

new_df.loc[new_df['Time'] == time, 'Volunteers'] += ',' + volunteer

print("按照家长义工可以值班的时间进行统计完成")

# 找出时间段为空的家长

empty_volunteers = df[df[1].isna()][0].values

# 对于每一个时间段为空的家长,随机分配一个时间段

for volunteer in empty_volunteers:

random_time = np.random.choice(new_df['Time'].values)

new_df.loc[new_df['Time'] == random_time, 'Volunteers'] += ',' + volunteer

print("对于时间段为空的家长进行随机安排完成")

# 保存新的 DataFrame 为新的 Excel 文件

new_df.to_excel('E:/new义工值班时间.xlsx', index=False, header=False)

print("新的Excel文件已保存")

程序运行成功,表格数据按照要求统计好了:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多