Я думаю, что вам нужно Resampler.transform
с фильтрацией только строк исходного DataFrame с count
выше как 100
, а также преобразовать маску логики в массив numpy на values
во избежание UserWarning
:
df = pd.DataFrame({
'Timestamp': ['2016-04-18 09:31:30',
'2016-04-18 09:31:30',
'2016-04-18 09:31:30',
'2016-04-18 09:41:31',
'2016-04-18 09:41:30',
'2016-04-18 09:51:30',
'2016-04-18 09:51:30',
'2016-04-18 09:31:30',
'2016-04-18 09:31:30'],
'B': list(range(9))
})
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
print (df)
Timestamp B
0 2016-04-18 09:31:30 0
1 2016-04-18 09:31:30 1
2 2016-04-18 09:31:30 2
3 2016-04-18 09:41:31 3
4 2016-04-18 09:41:30 4
5 2016-04-18 09:51:30 5
6 2016-04-18 09:51:30 6
7 2016-04-18 09:31:30 7
8 2016-04-18 09:31:30 8
#in real data N = 100
N = 2
ff = df[df.resample('15S', on='Timestamp')['Timestamp'].transform('count').values > N]
print (ff)
Timestamp B
0 2016-04-18 09:31:30 0
1 2016-04-18 09:31:30 1
2 2016-04-18 09:31:30 2
3 2016-04-18 09:41:31 3
4 2016-04-18 09:41:30 4