Колонка панд для подсчета по дате - PullRequest
0 голосов
/ 16 октября 2019

У меня есть фрейм данных с индексом даты и времени. Я хотел бы добавить столбец, который содержит количество строк за день.

dff = pd.DataFrame(['red','red','blue'],
    columns = ['colors'],
    index = [pd.Timestamp('2019-09-19 14:03:20'),pd.Timestamp('2019-09-19 17:03:20'),pd.Timestamp('2019-09-20 14:03:20')])

                    colors
2019-09-19 14:03:20 red
2019-09-19 17:03:20 red
2019-09-20 14:03:20 blue

Таким образом, строки, происходящие в 2019-09-19, должны иметь столбец 'count', равный 2, а последняя строка - количество. столбец 1.

1 Ответ

1 голос
/ 16 октября 2019

Это временно создает столбец только с датой, затем подсчитывает указанный столбец и помещает его в новый столбец, называемый count в реальном фрейме данных.

dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')

Вот все, что нужно вставить в IDE и проверить:

import pandas as pd

dff = pd.DataFrame(['red','red','blue'],
    columns = ['colors'],
    index = [pd.Timestamp('2019-09-19 14:03:20'),pd.Timestamp('2019-09-19 17:03:20'),pd.Timestamp('2019-09-20 14:03:20')])

dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')

print(dff)

И результат:

                        colors  counts
2019-09-19 14:03:20    red       2
2019-09-19 17:03:20    red       2
2019-09-20 14:03:20   blue       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...