使用时间间隔或阈值删除行

2024-10-03 15:34:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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

基于这个postDrop row based on time,我想按时间间隔或阈值(1分钟)删除行。然而,我有巨大的行数据,我不能使用URL的答案。 我的预期结果是这样的。你知道吗

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

Tags: 数据答案idurldataframe间隔timeon
2条回答

使用

  • ^{}-将参数转换为timedelta。

  • ^{}-Grouper允许用户为目标对象指定groupby指令。

  • ^{}-计算第一组值。你知道吗
  • ^{}-重置索引或其级别。你知道吗

    ^{}^{}中需要参数as_index=False,以便将索引转换为列:

例如

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

最简单的方法是使用重采样

df.resample('1T')

相关问题 更多 >