Удалить строку, используя временной интервал или порог в пандах - PullRequest
1 голос
/ 26 сентября 2019

Я новичок в Python. У меня есть dataframe, который появляется каждую секунду.Мои данные выглядят так:

    Time    Id
0   9:00:00 A
1   9:00:30 B
2   9:00:50 C
3   9:01:03 D
4   9:01:25 E
5   9:02:04 F

Исходя из этого сообщения Удалить строку по времени , я хочу удалить строку по временному интервалу или порогу (1 минута).Тем не менее, у меня есть огромные данные строки, и я не мог использовать ответ URL.Мой ожидаемый результат выглядит следующим образом.

    Time    Id
0   9:00:00 A
1   9:01:03 D
2   9:02:04 F

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Использование

  • pd.to_timedelta - преобразовать аргумент в timedelta.

  • pd.Grouper -A Grouper позволяет пользователю задавать групповую инструкцию для целевого объекта.

  • .GroupBy.first - вычислить первое из значений группы.
  • df.reset_index - Сбросить индекс или уровень.

    Нужен параметр as_index=False в groupby или reset_index для преобразования индекса в столбцы:

Пример.

df['Time'] = pd.to_timedelta(df['Time'])
df1 = df.groupby(pd.Grouper(freq='1 min', key='Time'))['Time','Id'].first().reset_index(drop=True)
print(df1)

ИЛИ

df['Time'] = pd.to_timedelta(df['Time'])
df1 = df.groupby([pd.Grouper(freq='1 min', key='Time')],as_index=False)['Time','Id'].first()
print(df1)

O / P:

      Time Id
0 09:00:00  A
1 09:01:03  D
2 09:02:04  F
0 голосов
/ 26 сентября 2019

самое простое будет использовать resample,

df.resample('1T')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...