首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Pandas 操作Excel Sheet

Pandas 操作Excel Sheet

作者头像
小田测测看
发布2026-07-06 13:05:10
发布2026-07-06 13:05:10
30
举报

记录下pandas操作sheet 一些语句

1. 环境依赖

代码语言:javascript
复制
pip install pandas openpyxl xlsxwriter

2. 批量读取:一行代码加载全表

使用 sheet_name=None 将整个 Excel 文件加载为 OrderedDict,Key 为 Sheet 名,Value 为 DataFrame。

代码语言:javascript
复制
import pandas as pd

# 读取所有 Sheet
excel_data = pd.read_excel('data.xlsx', sheet_name=None)

# 遍历所有 Sheet 名
for sheet_name, df in excel_data.items():
    print(f"处理表: {sheet_name}, 数据行数: {len(df)}")

3. 多表垂直合并 (Concat)

当所有 Sheet 结构相同时,

代码语言:javascript
复制
# 合并所有 Sheet 并增加一列记录来源
all_sheets = []
for name, df in excel_data.items():
    df['Source_Sheet'] = name
    all_sheets.append(df)

df_total = pd.concat(all_sheets, ignore_index=True)

4. 条件过滤读取

如果只需要读取符合特定命名的 Sheet

代码语言:javascript
复制
# 获取 Excel 中所有的 Sheet 名称
xl = pd.ExcelFile('data.xlsx')
target_sheets = [s for s in xl.sheet_names if "2026" in s]

# 只读取目标 Sheet
df_list = [pd.read_excel('data.xlsx', sheet_name=s) for s in target_sheets]

5. 高级写入:多 DataFrame 写入不同 Sheet

使用 ExcelWriter 上下文管理器,避免多次 IO 开销。

代码语言:javascript
复制
with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer:
    df_sales.to_excel(writer, sheet_name='bug数量', index=False)
    df_stats.to_excel(writer, sheet_name='bug统计摘要', index=False)
    
    # 获取 xlsxwriter 句柄进行格式化
    workbook = writer.book
    worksheet = writer.sheets['bug分布']
    
    # 设置列宽
    worksheet.set_column('A:Z', 15)

6. 动态样式处理 (Styling)

对不同 Sheet 进行条件格式化:

代码语言:javascript
复制
def highlight_high_sales(s):
    return ['background-color: yellow' if v > 10000 else '' for v in s]

with pd.ExcelWriter('styled_output.xlsx') as writer:
    # 只对特定 Sheet 应用样式
    df.style.apply(highlight_high_sales, subset=['Amount'])\
      .to_excel(writer, sheet_name='高额预警', index=False)

注意点

  • 内存溢出:如果 Excel 文件超过 500MB,建议使用 pd.read_excel(..., engine='openpyxl', usecols=['A', 'B']) 仅读取需要的列。
  • 日期处理:Excel 存储日期有时会乱码,建议读取后执行 pd.to_datetime() 强制转换。
  • 合并单元格:Pandas 读取合并单元格时,除首行外其余会被填充为 NaN,处理前需执行 df.ffill()

#panadas #excel

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

本文分享自 编程拾光 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 记录下pandas操作sheet 一些语句
    • 1. 环境依赖
    • 2. 批量读取:一行代码加载全表
    • 3. 多表垂直合并 (Concat)
    • 4. 条件过滤读取
    • 5. 高级写入:多 DataFrame 写入不同 Sheet
    • 6. 动态样式处理 (Styling)
    • 注意点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档