Pandas / Python groupby, а затем вычислите среднее значение для другого столбца в каждой группе - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть следующая таблица. Я хочу сгруппировать все строки по значениям в ToD, а затем вычислить mean для LOS для всех строк в одной группе.

Вот так я и создал DataFrame

df_sim = pd.DataFrame(columns=['ID','Type','Type_n','FT','ta','DoW','ToD','t_departure'])

Я попробовал следующее.

df_sim.groupby('ToD').LOS.mean()

Полученная ошибка: Ошибка данных: Нет цифр c типы для агрегирования .

Что меня смущает, так это следующие работы. Я думаю, что теперь я беру сумму вместо означает .

df_sim[['ToD','LOS']].groupby('ToD').sum()
  ID     Type Type_n FT        ta  DoW ToD t_departure       LOS
0  0     ESI4      4  0  0.648446  Sun   0     3.87411   3.22567
1  1     ESI2      1  0  0.663228  Sun   0     1.42772  0.764489
2  2   A-ESI3      2  0   4.72354  Sun   4     4.90432  0.180779
3  3  NA-ESI3      3  0   5.26787  Sun   5     5.39109  0.123218
4  4  NA-ESI3      3  0   5.79297  Sun   5     5.98826  0.195283
5  5   A-ESI3      2  0   7.30924  Sun   7     7.49349  0.184249
6  6   A-ESI3      2  0   7.71666  Sun   7     8.20255  0.485886
7  7  NA-ESI3      3  0   8.22392  Sun   8     9.76091   1.53699
8  8     ESI4      4  0   8.30123  Sun   8     8.41346  0.112227
9  9     ESI4      4  0   8.40325  Sun   8     9.91045    1.5072

1 Ответ

0 голосов
/ 06 апреля 2020

Так что я с помощью комментария, мы должны выяснить что-то вроде этого.

df_sim = pd.DataFrame({'ID': int(),
                        'Type': str(),
                        'Type_n':int(),
                        'FT':int(),
                        'ta':float(),
                        'DoW': str(),
                        'ToD': int(),
                        't_departure':float()
                        },index=[])

Однако я не уверен, что требуется index=[]. Но, похоже, работает.

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