Удалить все записи с интервалом в 15 секунд, если количество записей меньше определенного числа. - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть фрейм данных pandas, который выглядит следующим образом enter image description here

Я пытаюсь пересчитать данные на 15-секундном итнервале со средним значением данных.Если количество записей в повторной выборке меньше 100, я просто хочу удалить все записи, соответствующие этому 15-секундному интервалу, и иметь все записи, а не просто пересчитанные данные.

ff = df.resample('15S', on='Timestamp').count()['Timestamp']

output

Timestamp
2016-04-18 09:31:30      2
2016-04-18 09:31:45    275
2016-04-18 09:32:00    258
2016-04-18 09:32:15    255
2016-04-18 09:32:30    263
2016-04-18 09:32:45    246

все метки времени в 15-секундных интервалах со значением менее 100 должны быть удалены.Как мне это сделать?

1 Ответ

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

Я думаю, что вам нужно 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...