Python Groupby на словаре данных кадров - python


0

У меня есть словарь данных:

list_of_dfs={df1:Dataframe,df2:Dataframe,df3:Dataframe,df4:Dataframe}

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

df = pd.DataFrame({
Price: [-3000, -262, 150, -3000, -262, 150, -3000, -262, 150],
Volume: [8133, 28287, 19289, 20242, 19428, 28322, 18147, 17234, 12133]})

# I can use the groupby object on price, to calculate average of volume

df_groupby_mean = df_filtered.groupby(Price)[Volume].mean()
print(df_groupby_mean)

Я применяю следующий код, чтобы выполнить цикл для всех фреймов данных, содержащихся в моем справочнике

promedios={k: df[df.groupby(Price)[Volume].mean()] for k, df in list_of_dfs.items()}

Однако появляется следующая ошибка:

KeyError: "Ни один из [] не находится в [столбцах]"

Кто-нибудь знает почему и как я могу решить эту проблему? Спасибо!

Источник
  •  166
  •  1
  • 11 май 2020 2020-05-11 10:17:42

1 ответ

0

У вас есть дополнительный df[] в вашем коде:

promedios={k: df.groupby(Price)[Volume].mean() for k, df in list_of_dfs.items()}

Тем не менее, вы получите среднее значение Volume для каждой цены на каждом кадре данных. Не ясно, если это то, что вы на самом деле ищете.

  • 11 май 2020 2020-05-11 10:17:44