У меня есть 17 фреймов данных с похожими именами (df1, df2, df3,...) и хотели бы иметь возможность писать цикл for, который будет выполнять те же операции на каждом из фреймов данных.
df1 = pd.read_csv("filename1")
df2 = pd.read_csv("filename2")
...
df17 = pd.read_csv("filename17")
for i in range (1,17):
"operations"
Как я могу перебирать имена этих данных в цикле for?
Просто вы можете помещать их в список как user3483203, упомянутый в комментарии, затем мы используем pd.concat
с keys
, а также используем groupby
для реализации вашей функции
l=[df1,df2...]
alldf=pd.concat(l,keys=list(range(len(l))))
allldf=alldf.groupby(level=0).apply('your function')
После результата мы можем использовать groupby
снова groupby
фрейм данных
[x for _,x in alldf.groupby(level=0)]
for df in dfs: ....
Я бы также рекомендовал помещать ваши имена файлов в список или другую структуру данных, чтобы вы могли просматривать их как хорошо при чтении в ваших фреймах.locals()['df{}'.format(i)]
.