You need to enable JavaScript to run this app. 如何基于pandas dataframe生成指定目录结构并存储用户分组CSV文件
优惠活动
大模型
产品
解决方案
定价
更多

如何基于pandas dataframe生成指定目录结构并存储用户分组CSV文件

解决方案

核心思路

  • 优先使用os.makedirs实现多级目录批量创建,无需逐层手动生成目录,配置exist_ok=True参数避免重复创建报错
  • 分组导出时直接按照目标结构拼接路径,无需提前单独创建所有用户文件夹,减少冗余代码

完整代码示例

import pandas as pd
import os

# 构造示例DataFrame
d = {'user': ['Peter', 'Peter', 'Peter', 'Peter', 'David', 'David', 'David', 'Emma', 'Joyce', 'Joyce', 'Joyce'], 
     'date': ['2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04', '2019-03-04'], 
     'value': ['5', '4', '3', '3', '6', '1', '5', '7', '1', '7', '6']}
df = pd.DataFrame(data=d)

# 定义根报告目录,可按需修改为实际路径
root_path = "./Report"
# 取当前数据对应的日期(单日期场景直接取第一条即可)
current_date = df["date"].iloc[0]

# 按用户分组导出
for user_name, user_data in df.groupby("user"):
    # 拼接对应用户的目标目录
    target_dir = os.path.join(root_path, "Reports per date", current_date, "Users", user_name)
    # 自动创建多级目录,目录已存在也不会报错
    os.makedirs(target_dir, exist_ok=True)
    # 拼接csv文件路径并导出
    csv_file_path = os.path.join(target_dir, f"{user_name}.csv")
    user_data.to_csv(csv_file_path, index=False)

多日期场景适配

如果你的DataFrame包含多个日期的数据,只需要在外层增加一层按日期的分组即可:

for date_val, date_df in df.groupby("date"):
    for user_name, user_data in date_df.groupby("user"):
        target_dir = os.path.join(root_path, "Reports per date", date_val, "Users", user_name)
        os.makedirs(target_dir, exist_ok=True)
        user_data.to_csv(os.path.join(target_dir, f"{user_name}.csv"), index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 01:27:02