2017-02-13 7 views
0

Я уже много часов борюсь с этой проблемой и не могу найти решение, поэтому я надеюсь, что somobody может мне помочь.Объект группы Pandas/Python с тем же именем

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

Station  Response 
Tara Street  4 
Finglas   6 
Tara Street  7 
Central   3 
Tara Street  4 

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

Station  Response 

Finglas   6 
Tara Street  5 
Central   3 

Любая помощь будет оценена

+0

Пожалуйста, прочитайте http://stackoverflow.com/help/how-to-ask. Покажите нам код и что не работает. –

ответ

0

Вы должны groupby с sort_values:

#first try cast to int, if error, try to_numeric 
df.Response = df.Response.astype(int) 

#castvalues to int or floats, if some non numeric replace them by NaN 
#df.Response = pd.to_numeric(df.Response, errors='coerce') 

df = df.groupby('Station')['Response'].mean().sort_values(ascending=False).reset_index() 
print (df) 
     Station Response 
0  Finglas   6 
1 Tara Street   5 
2  Central   3 
+0

Спасибо за ваш ответ, я попробовал и я получаю следующую ошибку DataError: Нет числовых типов не агрегировать Я попытался ф.р. [ «Response»] применяется (INT) и возвращает:. ' Имя: Response, dtype: int64 ' –

+0

Пожалуйста, проверьте отредактированный ответ. – jezrael

+0

Спасибо, что так поработали, как шарм :) –

0

Вы можете использовать groupby для агрегирования catgories

df.groupby('Station').mean().sort_values('Response', ascending=False) 

 Смежные вопросы

  • Нет связанных вопросов^_^