如何按条件对Pandas DataFrame的datetime字段减去指定分钟数
处理Datetime字段的条件时间偏移需求
原始数据构造
首先构造符合要求的DataFrame:
import pandas as pd from datetime import timedelta data = { 'date': ['2024-09-01 22:09:55', '2024-09-01 22:12:08', '2024-09-01 22:59:59', '2024-09-01 23:00:02', '2024-09-01 23:04:00'], 'v': [1.2, 1.11, 1.7, 1.1, 2.2] } df = pd.DataFrame(data) df['date'] = pd.to_datetime(df['date'])
需求实现
通过Pandas的where方法结合datetime属性实现条件偏移,这种方法比apply更高效,适合大规模数据:
# 对分钟数≤10的记录减去11分钟,其余保持不变 df['date'] = df['date'].where( df['date'].dt.minute > 10, df['date'] - timedelta(minutes=11) )
输出结果
运行后得到的结果与期望一致:
date v 0 2024-09-01 21:58:55 1.20 1 2024-09-01 22:12:08 1.11 2 2024-09-01 22:59:59 1.70 3 2024-09-01 22:49:02 1.10 4 2024-09-01 22:53:00 2.20
内容的提问来源于stack exchange,提问作者jigga
相关产品推荐
相关产品推荐

