#python #pandas
#python #pandas
Вопрос:
Как использовать цикл for для выполнения следующей операции?
df_1=pd.concat([df_ab1,df_xy1], axis=1)
df_2=pd.concat([df_ab2,df_xy2], axis=1)
df_3=pd.concat([df_ab3,df_xy3], axis=1)
df_4=pd.concat([df_ab4,df_xy4], axis=1)
df_5=pd.concat([df_ab5,df_xy5], axis=1)
df_6=pd.concat([df_ab6,df_xy6], axis=1)
df_7=pd.concat([df_ab7,df_xy7], axis=1)
df_8=pd.concat([df_ab8,df_xy8], axis=1)
df_9=pd.concat([df_ab9,df_xy9], axis=1)
Я думал о чем-то вроде этого
for i in np.arange(9):
df_str(i 1)=pd.concat([df_ab str(i 1),df_xy str(i 1)], axis=1)
По-видимому, чего-то не хватает.
Заранее большое спасибо!
Комментарии:
1. Не создавайте имена переменных динамически (
df_str(i 1)
). Для этого есть обходные пути, но не делайте этого… Вместо этого выберите структуру списка, которую вы уже имеете в виду. Объявите списокdf
; инициализируйте его с помощью:df = []
. затем используйтеdf.append(pd...)
для добавленияpd
объектов. Затем вы можете получить доступ к элементам списка по их индексу (pd[0]
).
Ответ №1:
Я не рекомендую приведенное ниже решение, но это решит вашу проблему
variables = locals()
for i in np.arange(9):
variables["df_{0}".format(i 1)] = pd.concat([variables["df_ab{0}".format(i 1)],variables["df_xy{0}".format(i 1)]], axis=1)
Комментарии:
1. Согласен, лучшей структурой кода было бы иметь главный df с multiindex
2. Большое спасибо! Кажется, что отсутствует правая квадратная скобка.
3. @ER1CZZ да 🙂 ты понял ~
4. @RichieV Спасибо за комментарий. Я попытаюсь использовать основной df.