перебирая разные имена фреймов данных панд

1

У меня есть 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?

  • 3
    Поместите кадры данных в список или словарь, тогда вы можете использовать свой цикл следующим образом: for df in dfs: .... Я бы также рекомендовал помещать ваши имена файлов в список или другую структуру данных, чтобы вы могли просматривать их как хорошо при чтении в ваших фреймах.
  • 0
    Вы можете сделать locals()['df{}'.format(i)] .
Теги:
pandas

1 ответ

1

Просто вы можете помещать их в список как 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)]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню