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

Я новичок во фреймах данных и пытаюсь понять, как сделать следующее:

У меня уже есть датафрейм в виде временного ряда, например:

timestamp             source                        
2017-06-18 10:43:54    two
2017-06-20 03:38:23    three
2017-06-18 07:37:02    one
2017-06-07 16:49:51    two
2017-06-15 22:36:10    two
2017-06-07 16:49:51    two
2017-06-18 22:36:10    two

Я пытаюсь 1) пересчитать в день и 2) получить% от каждой категории за этот день. Вот так:

timestamp      One    Two  Three                    
2017-06-18     33%    66%    0%
2017-06-20     0%     0%    100%
2017-06-07     0%    100%    0%
2017-06-15     0%    100%    0%

Я могу выполнять базовые вещи, например, ежедневно пересчитывать количество «источников», но оно не разбивается на категории.

Может кто-нибудь помочь направить меня в правильном направлении? С благодарностью.

1 Ответ

0 голосов
/ 05 ноября 2018

groupby + value_counts + unstack

(df.groupby(df.timestamp.dt.date).source.value_counts(normalize=True)*100).unstack().fillna(0)

source            one  three         two
timestamp                               
2017-06-07   0.000000    0.0  100.000000
2017-06-15   0.000000    0.0  100.000000
2017-06-18  33.333333    0.0   66.666667
2017-06-20   0.000000  100.0    0.000000

pivot_table

df2 = df.pivot_table(index=df.timestamp.dt.date, columns='source', aggfunc='size')
df2 = df2.divide(df2.sum(1), axis=0).fillna(0)*100

pd.crosstab

pd.crosstab(df.timestamp.dt.date, df.source, normalize='index')*100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...