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

按唯一列值拆分Pandas DataFrame并导出为多个CSV文件

按地点拆分DataFrame并批量导出CSV的解决方案

我来帮你搞定这个问题!你之前的代码逻辑有小问题,而且没必要用全局变量来管理拆分后的DataFrame,咱们用Pandas的groupby就能轻松实现需求,还能直接批量导出CSV文件。

问题分析

你之前的代码for i in df是在遍历DataFrame的列名(也就是Location、Name、Date),而不是你需要的唯一地点值,所以根本没按地点拆分。而且用globals()创建一堆变量既不优雅也没必要,咱们直接在分组时就完成导出操作。

完整实现代码

import pandas as pd

# 先构建你的示例DataFrame(实际使用时替换成你自己的df即可)
data = {
    'Location': ['OFFICE', 'OFFICE', 'HOME', 'HOME', 'HOME', 'SHOPPING', 'SHOPPING', 'HOME'],
    'Name': ['Bob', 'Jane', 'Bob', 'Jane', 'John', 'Suzie', 'John', 'Bobby'],
    'Date': ['3-Apr-15', '3-Apr-15', '3-Apr-15', '4-Apr-15', '4-Apr-15', '5-Apr-15', '5-Apr-15', '5-Apr-15']
}
df = pd.DataFrame(data)

# 按Location分组,遍历每个分组并导出CSV
for location, group_df in df.groupby('Location'):
    # 导出为CSV,文件名用地点命名(比如OFFICE.csv),index=False避免导出索引列
    group_df.to_csv(f"{location}.csv", index=False)
    
    # 如果需要查看拆分后的DataFrame,直接打印即可
    print(f"=== 地点 {location} 的数据 ===")
    print(group_df)

代码说明

  1. 分组逻辑:df.groupby('Location')会自动把DataFrame按Location列的唯一值分成多个子DataFrame,每个子DataFrame对应一个地点。
  2. 批量导出:遍历分组时,location是当前组的地点名称,group_df是对应地点的子DataFrame,调用to_csv()就能直接导出,文件名用地点命名非常直观。
  3. 细节调整:index=False是为了避免把Pandas的索引列导出到CSV里,如果你的需求需要保留索引,可以去掉这个参数。

这样不管你有70个还是更多唯一地点,代码都能自动处理,不需要手动修改,而且全程不用创建多余的全局变量,代码简洁又易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:09:05