You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python读取特殊Excel休假日历并转换为指定格式DataFrame

特殊结构休假Excel转人员-日期DataFrame实现方案

前置依赖安装

执行以下命令安装需要的工具库:
pip install pandas openpyxl

实现代码

你只需要修改代码开头的几个配置参数,适配你自己的Excel文件即可直接运行:

import pandas as pd

# -------------------------- 请修改以下参数适配你的文件 --------------------------
excel_path = "你的休假日历文件路径.xlsx"  # 替换为你的Excel文件实际路径
header_row = 1  # 日期表头所在的Excel行号,注意Excel第一行索引为0,比如日期在第2行就填1
person_start_row = 2  # 第一个人员信息所在的Excel行号,比如人员从第3行开始就填2
name_col = 0  # 人员姓名所在的列号,Excel第一列索引为0,比如姓名在A列就填0
# -----------------------------------------------------------------------------

# 读取Excel文件,保留空值
df_raw = pd.read_excel(excel_path, header=None, keep_default_na=False)

# 提取日期表头,处理合并单元格导致的空值
date_header = df_raw.iloc[header_row].ffill().tolist()
# 把第一列的表头修改为“人员姓名”
date_header[name_col] = "人员姓名"

# 提取人员+休假数据
df_person = df_raw.iloc[person_start_row:]
df_person.columns = date_header

# 设置人员姓名为行索引
df_result = df_person.set_index("人员姓名")

# 输出前几行结果验证
print(df_result.head())
# 可导出为新Excel文件方便查看
df_result.to_excel("转换后的休假日历.xlsx")

常见场景适配调整

  • 如果你需要把休假标记转为1/0的数值格式,可在代码最后增加以下内容,括号内替换为你Excel里实际的休假类型标记:
    df_result = df_result.replace({'年假':1, '病假':1, '事假':1, '调休':1, '':0})
    
  • 如果你的Excel包含多个工作表,可在pd.read_excel方法中增加sheet_name参数,指定为对应工作表的名称或者序号(从0开始计数)
  • 如果日期表头需要拼接年月信息,可提取上一行的月份数据和日期组合后再作为列名

内容的提问来源于stack exchange,提问作者ImFabien75

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:57:01