Предполагая, что этот процесс является частью подготовки данных, я хотел бы упомянуть, что вы должны стараться работать с «конвейерами подготовки данных», когда это возможно. В противном случае через пару месяцев код будет огромным беспорядком для чтения.
Есть несколько способов решения этой проблемы.
Словарь - самый простой способ справиться с этим.
df_parts = {
'df1' : {'part1': df1_part1, 'part2': df1_part2,...,'partN': df1_partN},
'df2' : {'part1': df1_part1, 'part2': df1_part2,...,'partN': df2_partN},
'...' : {'part1': ..._part1, 'part2': ..._part2,...,'partN': ..._partN},
'dfN' : {'part1': dfN_part1, 'part2': dfN_part2,...,'partN': dfN_partN},
}
# print parts from `dfN`
for val in for df_parts['dfN'].values():
print(val)
# print part1 for all dfs
for df in df_parts.values():
print(df['part1'])
# print everything
for df in df_parts:
for val in df_parts[df].values():
print(val)
Хорошая вещь в этом подходе состоит в том, что вы можете перебирать весь словарь, но вы не включаете range
, что может сбивать с толку позже. Кроме того, лучше назначать каждую df_part напрямую dict вместо назначения N*N
переменных, которые можно использовать один или два раза. В этом случае вы можете просто использовать 1 переменную и повторно назначать ее по мере продвижения:
# code using df1_partN
df1 = df_parts['df1']['partN']
# stuff to do
# happy? checkpoint
df_parts['df1']['partN'] = df1