Python Groupby на словаре данных кадров - PullRequest
0 голосов
/ 17 октября 2019

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

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: «Ни один из [] не находится в [столбцах]»

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

1 Ответ

0 голосов
/ 17 октября 2019

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

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

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

...