昨天之前我该怎么办

2024-04-26 01:10:49 发布

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

这是我的数据集

No. timestamp                    letter
1   2018-07-07 00:15:52          A
2   2018-07-07 09:55:34          A
3   2018-07-07 14:13:32          A
4   2018-07-08 02:22:51          A
5   2018-07-08 13:15:52          A
6   2018-07-08 18:52:43          A
7   2018-07-09 01:05:52          A
8   2018-07-09 09:15:52          A

我想删除这个数据中的最后24小时延迟时间戳,它是任何2018-07-08 09:15:52(最新时间戳之前的24小时),所以问题是

No. timestamp                    letter
1   2018-07-07 00:15:52          A
2   2018-07-07 09:55:34          A
3   2018-07-07 14:13:32          A
4   2018-07-08 02:22:51          A

我该怎么做


Tags: 数据no时间timestamp小时letter
2条回答

您可以使用pd.DateOffset从最长日期中减去一天。然后使用布尔掩码。你知道吗

# convert to datetime
df['timestamp'] = pd.to_datetime(df['timestamp'])

# calculate max date permitted
max_date = df['timestamp'].max() - pd.DateOffset(days=1)

print(max_date)

2018-07-08 09:15:52

# apply Boolean mask
res = df[df['timestamp'] < max_date]

print(res)

   No.           timestamp letter
0    1 2018-07-07 00:15:52      A
1    2 2018-07-07 09:55:34      A
2    3 2018-07-07 14:13:32      A
3    4 2018-07-08 02:22:51      A

使用^{}并从上次/最大日期时间减去1天:

df = df[df['timestamp'] < df['timestamp'].iloc[-1] - pd.Timedelta(1, unit='d')]

或:

df = df[df['timestamp'] < df['timestamp'].max() - pd.Timedelta(1, unit='d')]

print (df)
   No.           timestamp letter
0    1 2018-07-07 00:15:52      A
1    2 2018-07-07 09:55:34      A
2    3 2018-07-07 14:13:32      A
3    4 2018-07-08 02:22:51      A

相关问题 更多 >