У меня есть фрейм данных:
import pandas as pd
df = pd.read_csv('test.csv')
brand rating
0 a 81
1 a 83
2 a 60
3 a 45
4 b 73
5 b 55
6 b 90
7 c 60
8 d 70
9 e 75
10 e 80
11 e 85
До сих пор я выяснил, как сгруппировать мой фрейм данных по марке и рассчитать среднее значение и рассчитать по категории бренда:
groupeddf = df.groupby('brand', as_index=False).agg(['count', 'mean'])
который выдает:
rating
count mean
brand
a 4 67.250000
b 3 72.666667
c 1 60.000000
d 1 70.000000
e 3 80.000000
Теперь я хотел бы отсортировать эти результаты по среднему значению и отбросить все бренды, для которых существует менее трех (поэтому в этом случае отбросим строки для C и D).
Я пытался отсортировать по «среднему значению»:
groupeddf.sort_values('mean')
, но я получил KeyError: 'mean'
Итак, я посмотрел на свои столбцы:
groupeddf.columns
, что дает:
MultiIndex(levels=[['rating'], ['count', 'mean']],
labels=[[0, 0], [0, 1]])
И теперь я не совсем уверен, что делать.Все, что я хочу сделать, это:
- сгруппировать мой исходный кадр данных по бренду
- вычислить среднее значение и количество для каждого бренда
- отсортировать по среднему значению в порядке убывания
- исключить любые данные, где количество <3 </li>