Взятие списка фреймов данных и группирование по переменной и использование этой переменной в качестве ключа к словарю - PullRequest
0 голосов
/ 15 апреля 2019

Я относительно новичок в программировании на Python. У меня есть список фреймов данных панд, у которых есть столбец «Год». Я пытаюсь сгруппировать по этому столбцу и преобразовать в словарь, где ключ словаря - это переменная «Год», а значения - это список данных за этот год. Возможно ли это в Python?

Я пробовал это:

grouped_dict = list_of_csv_files.groupby(by = 'Year').to_dict()

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

Я тоже пробовал это:

grouped_dict = list_of_csv_files.groupby(by = 'Year').apply(lambda dfg: dfg.to_dict(orient='list')).to_dict()

Любое руководство будет с благодарностью!

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Другие ответы пока что не прошли, поэтому я дам вам альтернативу. Предполагая, что у вас есть файлы CSV (поскольку ваша переменная названа таким образом):

from collections import defaultdict

yearly_dfs = defaultdict(list)
for csv in list_of_csv_files:
    df = pd.read_csv(csv)
    for yr, yr_df in df.groupby("Year"):
        yearly_dfs[yr].append(yr_df)

Если у вас уже есть фреймы данных:

from collections import defaultdict

yearly_dfs = defaultdict(list)
for df in list_of_csv_files:
    for yr, yr_df in df.groupby("Year"):
        yearly_dfs[yr].append(yr_df)
1 голос
/ 15 апреля 2019

Сначала вы должны прочитать файлы в одном кадре данных: list_of_dfs = [pd.read_csv(filename, index_col=False) for filename in list_of_csv_files] df = pd.concat(list_of_dfs, sort=True)

Затем применить преобразование groupby к кадру данных и преобразовать его в словарь: grouped_dict = df.groupby('Year').apply(list).to_dict()

Этот вопросдубликат результатов GroupBy к словарю списков

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