Повторите выборку pandas dataframe и посчитайте количество экземпляров
Если у меня есть данные, такие как:
index = pd.date_range(start='2014 01 01 00:00', end='2014 01 05 00:00', freq='12H')
df = pd.DataFrame(pd.np.random.randn(9),index=index,columns=['A'])
df
Out[5]:
A
2014-01-01 00:00:00 2.120577
2014-01-01 12:00:00 0.968724
2014-01-02 00:00:00 1.232688
2014-01-02 12:00:00 0.328104
2014-01-03 00:00:00 -0.836761
2014-01-03 12:00:00 -0.061087
2014-01-04 00:00:00 -1.239613
2014-01-04 12:00:00 0.513896
2014-01-05 00:00:00 0.089544
И я хочу пересчитать до ежедневной частоты, это довольно просто:
df.resample(rule='1D',how='mean')
Out[6]:
A
2014-01-01 1.544650
2014-01-02 0.780396
2014-01-03 -0.448924
2014-01-04 -0.362858
2014-01-05 0.089544
Тем не менее, мне нужно отслеживать, сколько экземпляров происходит в каждый день. Есть ли хороший питонический способ использования повторной выборки для выполнения указанной операции "как" И отслеживания количества точек данных, входящих в каждое среднее значение, например, для получения
Out[6]:
A Instances
2014-01-01 1.544650 2
2014-01-02 0.780396 2
2014-01-03 -0.448924 2
2014-01-04 -0.362858 2
2014-01-05 0.089544 2
1 ответ
Удобно, how
принимает список:
df1 = df.resample(rule='1D', how=['mean', 'count'])
Это вернет DataFrame со столбцом MultiIndex: один уровень для "A" и другой уровень для "mean" и "count". Чтобы получить простой DataFrame, подобный нужному выводу в вашем вопросе, вы можете опустить дополнительный уровень, например df1.columns = df1.columns.droplevel(0)
или, лучше, вы можете сделать повторную выборку на df['A']
вместо df
,