Как найти медианное значение для фрейма данных населения со столбцами возраста и количества? - PullRequest
0 голосов
/ 05 августа 2020

df выглядит так:

   age  population
0   20           2
1   21           3
2   22           2
3   23           5
4   24           7

df = pd.DataFrame({ 'age': [20, 21, 22, 23, 24], 'population': [2, 3, 2, 5, 7]})

, и я хотел бы вычислить средний возраст всего населения. Есть ли простой способ сделать это?

Получил среднее значение, как это, но мне нужна медиана:

df['years'] = df['age'] * df['population']
average_age= (df['years'].sum()/df['population'].sum())

1 Ответ

2 голосов
/ 05 августа 2020

Умножение двух pandas Ряд отличается от умножения списков - вы не копируете каждое значение N раз, вы выполняете поэлементное умножение.

Используйте pd.Series.repeat повторять каждый элемент N раз, а затем использовать метод .median для вычисления медианы результирующей серии pandas:

df = pd.DataFrame({ 'age': [20, 21, 22, 23, 24], 'population': [2, 3, 2, 5, 7]})
m = df['age'].repeat(df['population']).median()
print(m)  # output: 23.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...