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

如何将按特定值拆分后的DataFrame导出至Excel多工作表?

拆分DataFrame并导出到Excel/CSV多工作表的解决方案

问题描述

用户拥有大型数据集,需求为每当y列出现0.0001或0.0002时拆分DataFrame,示例数据及期望结果如下:

原数据集

x       y
2.32   0.0001
2.50   0.0034
3.01   0.0045
6.05   0.0002
1.05   0.0100
6.10   0.0001
6.22   0.0022

期望拆分结果

x       y
2.32   0.0001
2.50   0.0034
3.01   0.0045

 x       y 
6.05   0.0002
1.05   0.0100

 x       y 
6.10   0.0001
6.22   0.0022

同时需要将拆分后的结果导出到Excel/CSV文件的不同工作表中,用户已尝试拆分代码但存在逻辑问题,且不清楚导出操作。

修正DataFrame拆分代码

你当前的拆分代码存在两处问题:

  1. 用索引df2[1]定位列错误,应使用列名df2['y']
  2. eq(str(0.0001) or str(0.0002))逻辑错误,or在此只会返回第一个真值,且数值列无需转字符串,应改用isin()匹配多个目标值

修正后的拆分代码如下:

# 生成拆分分组标识:每当y列出现0.0001/0.0002时,分组编号自动+1
group_ids = df2['y'].isin([0.0001, 0.0002]).cumsum()
# 按分组拆分DataFrame,存入字典
df_list = {f'df_{i}': g.reset_index(drop=True) for i, g in df2.groupby(group_ids)}

导出到Excel(多工作表)

使用pandas.ExcelWriter可将多个DataFrame写入同一份Excel文件的不同工作表:

import pandas as pd

# 创建Excel写入对象
with pd.ExcelWriter('拆分结果.xlsx') as writer:
    # 遍历字典中的每个DataFrame,写入对应工作表
    for sheet_name, df in df_list.items():
        df.to_excel(writer, sheet_name=sheet_name, index=False)
  • 工作表名称会沿用字典的键(如df_1、df_2)
  • index=False表示不导出DataFrame的索引列

导出到CSV(多个独立文件)

如果需要导出为独立的CSV文件,直接遍历字典逐个导出即可:

for file_name, df in df_list.items():
    df.to_csv(f'{file_name}.csv', index=False)

执行后会生成df_1.csv、df_2.csv等多个独立文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:40:26