Группировка уникальных значений столбцов для получения среднего значения каждого уникального значения в столбце pandas данных - PullRequest
0 голосов
/ 03 апреля 2020

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

Фрейм данных выглядит следующим образом:

Charge Code Days 
1001-000    132
1001-000    48
1001-000    12
1001-000    22
1001-000    38
1001-000    22
1001-000    36
1001-000    931
1001-000    973
1001-000    53
1001-000    69
1001-000    69
1001-000    973
1001-000    69
1001-000    69
1001-000    69
1001-000    52
1001-000    973
1001-000    87
1001-000    973
1001-000    55
1001-000    55
1001-000    55
1001-000    55
1001-000    220
1002-000    39
1002-000    28
1002-000    16
1003-000    945
1003-000    25
1003-000    41

Я использую следующую строку:

df_Paid.groupby(level=0)['Charge Code'].mean()

, чтобы попытаться получить нужный фрейм данных:

Charge Code Days
1001-000   244
1002-000   28
1003-000   337

- это среднее количество дней для каждого кода оплаты. Когда я использую эту строку, я получаю следующую ошибку:

DataError: No numeric types to aggregate

Я не уверен, что я делаю неправильно.

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Попробуйте, может быть -

df_Paid['Days'] = df_Paid['Days'].astype(int)
df_Paid.groupby(['Charge Code'])['Days'].mean()
1 голос
/ 03 апреля 2020

Используйте df_Paid.groupby('Charge Code')['days'].mean() Вы должны быть хорошими. Вот хороший справочник по использованию groupby (): https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html Найдите там иерархические индексы.

...