python: подмножество и переименование столбцов по имени в списке кадров данных - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть список данных, все с одинаковыми столбцами. Я sh, чтобы сначала выбрать подмножество столбцов, а затем переименовать столбцы.

У меня есть список столбцов для подмножества

rename_cols_list = ['Portfolio', 'CalendarYear', 'Count']

и применить словарь для изменения имена столбцов:

rename_cols_dict = {'Portfolio': 'Index',
                    'CalendarYear': 'Year', 
                    'Count': 'Constituents'}

Работает, как и ожидалось, когда применяется к одному фрейму данных в списке:

cdx_analysis = cdx_analysis[rename_cols_list].rename(rename_cols_dict, 
                                                     axis='columns')

Но происходит сбой, т. е. столбцы не являются подмножеством и не вносятся изменения сделал, когда я l oop через список фреймов данных:

base_df = [cdx_analysis, cdx_ex_commod_analysis, cdx_commod_analysis,
           itraxx_all_analysis, itraxx_nonfins_analysis, itraxx_fins_analysis]

for df in base_df:
    df = df[rename_cols_list].rename(rename_cols_dict, axis='columns')

Спасибо

1 Ответ

3 голосов
/ 19 февраля 2020

Вы просто сбрасываете переменную l oop в вашем l oop на новый фрейм данных, фактически не обновляя список (например, ссылки / указатели). Самое простое решение - использовать флаг inplace:

for df in base_df:
    df[rename_cols_list].rename(rename_cols_dict, axis='columns', inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...