Как переименовать столбцы df с помощью цикла for и новых имен столбцов, полученных из других df? - PullRequest
0 голосов
/ 02 января 2019

Я создал фрейм данных из более крупного фрейма данных с циклом for и функцией group by.Мультииндексированный фрейм данных имеет имя «Область» для всех столбцов, а второй уровень для всех столбцов называется «среднее».Я индексирую столбцы с помощью iloc и хотел дать им имена на основе другого фрейма данных.

Не могли бы вы мне помочь?Если у вас совершенно другой подход, я тоже, конечно, благодарен.

bis=len(index_df['amount'])
for c, d in zip (index_df['amount'], (bis)): 
    num[c] = num.iloc[:,[d]]

Я получаю следующее сообщение об ошибке: «TypeError: аргумент zip # 2 должен поддерживать итерацию»

1 Ответ

0 голосов
/ 02 января 2019

Вы не можете перебирать целое число, но вы можете перебирать объект range, например range(len(index_df.index)).Но, в любом случае, = в Pandas используется для назначения, а не для переименования, если только вы не объедините его с pd.DataFrame.pop.

Если каждый столбец num относится кзначение в index_df['amount'], и отношение выровнено по целочисленной позиции, вы можете просто использовать присваивание:

num.columns = index_df['amount']

И все, ручная итерация не требуется.

...