DataFrame.iterrows 产生“(索引,系列)对。”这意味着 j 是一系列值,表示 DataFrame 中的行。要从 Client 访问特定值,我们需要从系列中选择值:
import os
import pandas as pd
# Sample DF
prod_df = pd.DataFrame([['OTT'], ['DVD'], ['OTV']], columns=['Client'])
# Column to Select
col = 'Client'
# Iterate over rows
for idx, row in prod_df.iterrows():
path = f'../models/{col}/{row[col]}'
exists = os.path.exists(path)
if not exists:
os.makedirs(path)
或者,如果我们不需要行中的所有值,我们可以只迭代 Client 列:
import os
import pandas as pd
# Sample DF
prod_df = pd.DataFrame([['OTT'], ['DVD'], ['OTV']], columns=['Client'])
# Loop Over Just the Client Column
col = 'Client'
# Loop Over values in just the column
for value in prod_df[col]:
path = f'../models/{col}/{value}'
exists = os.path.exists(path)
if not exists:
os.makedirs(path)
文件夹创建逻辑也可以用Path.mkdir from pathlib来简化:
from pathlib import Path
import pandas as pd
# Sample DF
prod_df = pd.DataFrame([['OTT'], ['DVD'], ['OTV']], columns=['Client'])
# Loop Over Just the Client Column
col = 'Client'
for value in prod_df[col]:
Path(f'../models/{col}/{value}').mkdir(parents=True, exist_ok=True)