You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中按条件处理datetime64[ns]时间:保留两位秒数并给OUT记录加1秒

Pandas 数据处理解决方案

步骤1:补全带DT列的模拟DataFrame

先构造包含datetime64[ns]格式DT列的完整数据集,匹配你提供的样例结构:

import pandas as pd

df = pd.DataFrame({
    'ID': [120, 120, 120, 120],
    'DT': pd.to_datetime([
        '2022-12-22 02:12:12.123',
        '2022-12-23 04:12:45.456',
        '2022-12-26 08:11:12.125',
        '2022-12-30 02:12:12.126'
    ]),
    'InOut': ['IN', 'OUT', 'IN', 'OUT']
})

步骤2:将DT的秒部分改为两位格式

通过dt.floor('S')截断毫秒部分,把DT保留到秒级(秒部分显示为两位):

# 截断毫秒,仅保留年-月-日 时:分:秒格式
df['DT'] = df['DT'].dt.floor('S')

步骤3:对InOut为OUT的记录增加1秒

用布尔索引定位目标行,通过pd.Timedelta给DT字段添加1秒:

# 给InOut为OUT的记录的DT字段加1秒
df.loc[df['InOut'] == 'OUT', 'DT'] += pd.Timedelta(1, unit='seconds')

最终结果

执行后DataFrame的输出如下:

ID                  DT InOut
0  120 2022-12-22 02:12:12    IN
1  120 2022-12-23 04:12:46   OUT
2  120 2022-12-26 08:11:12    IN
3  120 2022-12-30 02:12:13   OUT

内容的提问来源于stack exchange,提问作者mar355

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:48:16