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

news/2024/7/21 4:56:06 标签: excel

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

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

这项工作手动操作非常繁琐,耗费时间,来交给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文件已保存")

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


http://www.niftyadmin.cn/n/5034839.html

相关文章

MyBatisPlus使用自定义JsonTypeHandler实现自动转化JSON

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

MICROSAR ETH驱动的配置

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录

九芯电子丨语音智能风扇,助您畅享智慧生活

回忆童年时期的传统机械风扇,那“古老”的扇叶连摆动看起来是那么吃力。在一个闷热的夏夜,风扇的噪音往往令人印象深刻。但在今天,静音家用风扇已取代了传统的机械风扇。与此同时,随着智能化的发展,智能家居已逐渐成为…

聚焦数据库和新兴硬件的技术合力 中科驭数受邀分享基于DPU的数据库异构加速方案

随着新型硬件成本逐渐降低,充分利用新兴硬件资源提升数据库性能是未来数据库发展的重要方向之一,SIGMOD、VLDB、CICE数据库顶会上出现越来越多新兴硬件的论文和专题。在需求侧,随着数据量暴增和实时性的要求越来越高,数据库围绕处…

Linux 文件、目录和用户权限管理指南

文章目录 1. 用户和组管理引言创建用户删除用户更改用户密码修改用户属性创建组删除组将用户添加到组将用户从组中移除 2. 文件和目录权限管理引言文件权限概述更改文件权限更改文件所有者和所属组更改目录权限列出文件和目录权限使用特殊权限文件和目录权限的案例分析继承父目…

axios封装(例如:请求头、token、超时、BaseUrl、请求错误、请求重复)

axios封装 文章目录 axios封装前言1.为什么封装Axios2.包括的功能一、Axios是什么?二、安装 Axios1. 安装axios (JavaScript版本)2. 安装axios (TypeScript版本)三、封装 Axios1.axios (JavaScript版本)2.axios (TypeScript版本)四、如何使用 Axios以及结果如下图1.代…

三步在两台服务器间迁移conda环境

引言: 背景是我现在要跑的实验在一台服务器上跑有点来不及了,需要将conda环境和文件一起迁移到另一台服务器上。文件的迁移可以用scp或者rsync。但是conda虚拟环境的迁移则不行。 步骤: step 1 将当前的虚拟幻境信息写入environment.yml c…

GDPU 数据结构 天码行空2

实验内容 用顺序表实现病历信息的管理与查询功能。具体要求如下: 利用教材中定义顺序表类型存储病人病历信息(病历号,姓名,症状);要求使用头文件。 设计顺序表定位查找算法,写成一个函数,完成的功能为:在线性表L中查找数据元素x…