Как я могу создать табличное представление процентилей по дате, используя Python - PullRequest
0 голосов
/ 23 марта 2020

Используя Python/Jupyter Notebook Я хотел бы создать табличное представление процентилей grouped by date.

Набор данных выглядит примерно так:

count date
12    2020-02-01
15    2020-02-01
20    2020-02-02
...

и результат I ' m ищет выглядит примерно так:

      2020-02-01   2020-02-02
25%     12.5           15        
50%     15             16
75%     17.5           17
95%     19             18.5

Я видел функцию quantile, но не уверен, как расположить ее в виде таблицы.

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Вы также можете использовать .describe ()

import pandas as pd 

# Creating the dataframe  
df = pd.DataFrame({"count":[12, 15, 20],
                   "date":['2020-02-01', '2020-02-01', '2020-02-02']})

df2 = df.groupby('date')['count'].describe(percentiles=[.25, .5, .75, .95])

# Filtering out the needed columns
df2 = df2[['25%', '50%', '75%', '95%']].T

# output
date  2020-02-01  2020-02-02
25%        12.75        20.0
50%        13.50        20.0
75%        14.25        20.0
95%        14.85        20.0
1 голос
/ 23 марта 2020

Использовать DataFrameGroupBy.quantile с DataFrame.unstack - последняя очистка данных - удалить имя столбца с помощью DataFrame.rename_axis и Dynami c преобразовать процентили в проценты f-string с:

df = (df.groupby('date')['count']
        .quantile([.25,.5,.75,.95])
        .unstack(0)
        .rename_axis(None, axis=1)
        .rename(lambda x: f'{int(x * 100)}%'))

print (df)
     2020-02-01  2020-02-02
25%       12.75        20.0
50%       13.50        20.0
75%       14.25        20.0
95%       14.85        20.0
...