Панды: частота счета (гистограмма) в соответствии со значением

1

У меня есть dataframe, где строки - это время, столбцы - дата, а каждое входное значение - частота. Как я могу генерировать гистограмму в каждом 30-минутном периоде в день, сколько частот есть?

В настоящее время я использую df.groupby(pd.Grouper(freq='30Min')).count(). Однако count() не принимает значения ввода.

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

         03/12  03/13
1:00:01    2      3
1:00:02    3      4
1:31:03    1      2

Текущий выход:

         03/12  03/13
1:00:00    2      2
1:30:00    1      1

Желаемый результат должен быть:

         03/12  03/13
1:00:00    5      7
1:30:00    1      2

Как отметил @jezrael я протестированные resample на моем наборе данных. Вот результаты:

In [270]: %timeit date_df.resample('30Min').count()
7.7 ms ± 10.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [271]: %timeit date_df.groupby(pd.Grouper(freq='30Min')).count()
7.99 ms ± 49.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Теги:
pandas

1 ответ

0
Лучший ответ

Использовать sum:

df1 = df.groupby(pd.Grouper(freq='30Min')).sum()
#alternative solution
#df1 = df.resample('30Min').sum()
print (df1)
          03/12  03/13
01:00:01      5      7
01:30:01      1      2
  • 1
    ткс за альтернативу: D
  • 0
    @spacegoing - Ммм, до сих пор не уверен , что если grouper быстрее , как resample является возможным проверить его с реальными данными?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню