如何遍历Pandas DataFrame,按列创建父文件夹、按行内容创建子文件夹
Pandas批量生成目录结构解决方案
原代码问题说明
DataFrame.iterrows()返回的第一个值是行索引(即你样例中的0、1、2),第二个返回值是行对应的Series对象,不能直接用于字符串拼接生成路径- 原逻辑错误使用行索引作为父目录层级,不符合「列名作为父文件夹」的需求
修正后可运行代码
import pandas as pd import os # 原有业务逻辑 prod_lst = getprod() prod_df = pd.DataFrame(prod_lst, columns = ['Client']) # 目录生成逻辑 for col_name in prod_df.columns: # 遍历当前列的所有唯一行值,避免重复值重复触发创建操作 for cell_val in prod_df[col_name].unique(): # 自动适配不同操作系统的路径分隔符,拼接得到目标路径 target_path = os.path.join('../models', col_name, str(cell_val)) # exist_ok=True无需提前判断路径是否存在,不存在自动创建,存在也不会报错 os.makedirs(target_path, exist_ok=True)
生成目录结构示例
运行代码后会在../models路径下生成如下结构:
../models/ └── Client/ ├── OTT/ ├── DVD/ └── OTV/
扩展兼容说明
如果后续DataFrame扩展为多列,代码无需修改,会自动为每个列生成对应的父文件夹,子文件夹为对应列的行值。
内容的提问来源于stack exchange,提问作者Parthu Sapre
相关产品推荐
相关产品推荐

