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

如何为时间序列数据中每个用户的前3天设置value列为NaN?

实现每个用户前3天数据的Value列置为NaN

针对你的时间序列数据需求,可通过以下步骤用Pandas实现:

  1. 转换时间列类型
    首先确保timestamp列是可运算的datetime格式:

    import pandas as pd
    df['timestamp'] = pd.to_datetime(df['timestamp'])
    
  2. 分组处理每个用户的前3天数据
    按person分组,对每个组计算其最早记录时间,再筛选出该时间点后3天内的行,将对应value设为NaN:

    def process_group(group):
        # 获取当前用户的最早记录时间
        earliest_time = group['timestamp'].min()
        # 计算3天后的时间阈值
        threshold = earliest_time + pd.Timedelta(days=3)
        # 把阈值内的value设为NaN
        group.loc[group['timestamp'] < threshold, 'value'] = pd.NA
        return group
    
    # 应用分组处理
    df = df.groupby('person', group_keys=False).apply(process_group)
    

补充说明

  • 这里的"前3天"是从每个用户的第一条记录时间开始计算的72小时区间,完全适配不同用户起止时间不同的场景。
  • 如果需要按自然日(比如从第一条记录的当日0点开始算3个自然日),可以将earliest_time调整为当日0点:
    earliest_time = group['timestamp'].min().normalize()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:22:05