Объединить список DataFrames на основе строки в столбце, а затем преобразовать его в словарь - PullRequest
0 голосов
/ 01 марта 2020

Описание задачи

Я хочу объединить список фреймов данных, основанный на строке в столбце (страна), а затем преобразовать его в словарь и получить в качестве ключа столбец страны. и объединенные DataFrames в качестве значений. Пример данных:

Список названий стран

country_names = ['ITA', USA', 'UK', 'ARG']

Список фреймов данных с именем df_countries

df_countries[0]

  index   Date      A   B   C  Country     
    1   2019-12-31  x   y   z    ITA
    2   2019-12-30  x   y   z    ITA    

df_countries[1]

  index   Date      A   B   C  Country     
    1   2019-12-31  x   y   z    ITA
    2   2019-12-30  x   y   z    ITA    

df_countries[2]

  index   Date      A   B   C  Country     
    1   2019-12-31  x   y   z    USA
    2   2019-12-30  x   y   z    USA    

df_countries[3]

  index   Date      A   B   C  Country     
    1   2019-12-31  x   y   z    ARG
    2   2019-12-30  x   y   z    ARG    

Я бы хотел, например, чтобы ITA выглядела следующим образом после объединения, а затем из него был создан словарь с ключом ITA et c. :

  index   Date      A   B   C  Country     
    1   2019-12-31  x   y   z    ITA
    2   2019-12-30  x   y   z    ITA       
    3   2019-12-31  x   y   z    ITA
    4   2019-12-30  x   y   z    ITA  

Любая помощь будет супер!

1 Ответ

1 голос
/ 01 марта 2020

Немного подробней из моего комментария: вы можете сначала объединить все фреймы данных с pd.concat(), затем выбрать соответствующие строки и создать из них новые фреймы данных:

merged_frame = pd.concat(df_countries)
country_dict = {}
for country in country_names:
    country_dict[country] = merged_frame[merged_frame['Country'] == country]

При желании вы также можете вызвать country_dict[country].reset_index() исправить индексы новых кадров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...