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

Python Pandas 基于同列前值与列条件的元素填充向量化实现

实现方案

以下为全向量化实现逻辑,无循环遍历,时间复杂度O(n),适配千万级以下数据量的高性能处理:

import pandas as pd
import numpy as np

# 构造示例数据
df = pd.DataFrame({
    'status': [np.nan, 'busy', 'free', 'busy', 'busy', 'busy', 'free', np.nan],
    'date_start': pd.to_datetime([
        '2021-12-06 09:00:00',
        '2021-12-06 09:17:02',
        '2021-12-06 09:18:32',
        '2021-12-06 09:32:45',
        '2021-12-06 09:41:07',
        '2021-12-06 10:08:01',
        '2021-12-06 10:17:00',
        '2021-12-06 10:18:01'
    ])
})

# 核心处理逻辑
# 1. 标记新busy时段的起始行:当前行是busy且前一行不是busy
is_new_busy = (df['status'] == 'busy') & (df['status'].shift() != 'busy')
# 2. 为连续的busy段分配相同的组ID
busy_group = is_new_busy.cumsum()
# 3. 非busy行的组ID设为空,分组时自动忽略
busy_group[df['status'] != 'busy'] = pd.NA
# 4. 同组内取最早的起始时间作为该段所有busy行的date_start_busy
df['date_start_busy'] = df.groupby(busy_group)['date_start'].transform('first')

执行后输出的df完全符合需求预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:24:04