Как получить конкретный процентиль панд колонны панд? - PullRequest
0 голосов
/ 08 июня 2019

Предположим, у меня есть датафрейм, который содержит информацию о гражданах города, включая их доход. Я хочу разбить доход на процентили: верхние 1%, следующие 4%, следующие 15%, следующие 20% и последние 50%, а также для каждого процентиля рассчитать, сколько граждан находится в этом процентиле, среднем значении, сумме их дохода и т. Д. И т. Д. ..

Я знаю, как найти процентили, используя метод numpy.percentile, но я не могу понять, например, как найти 4% между верхним 1% и остальными 95%

Ответы [ 2 ]

0 голосов
/ 08 июня 2019

Вы хотите pd.qcut:

pd.qcut(df['income'], [0,.5,.6,.8, .95, .99,1])

даст вам порезы в соответствующих ведрах, которые вы можете передать groupby.

0 голосов
/ 08 июня 2019

Как насчет получения процентилей и фильтрации вашего фрейма данных? Попробуйте например это:

import pandas as pd
import numpy as np

# create dummy list of values and dataframe
vals = list(np.arange(100_001))
df = pd.DataFrame(vals, columns=["income"])

# filter on percentiles
df_4percent = df[(df.values_ > np.percentile(df.income, 1)) & (df.values_ < np.percentile(df.income, 5))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...