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

按时间点补全DataFrame所有唯一Item并按规则填充值

实现每个TimePoint包含所有唯一Item的方法

我来帮你搞定这个需求!要让每个timePoint都涵盖数据里所有唯一的item,没出现过的item对应的value填充NaN,咱们可以按以下步骤来操作:

思路解析

核心思路是先构造出timePoint和所有唯一item的全组合,再和原数据做左合并,这样缺失的记录就会自动用NaN填充了。

具体代码实现

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame({'timePoint': [1,1,1,1,2,2,2,2,3,3,3,3], 
                   'item': [1,2,3,4,3,4,5,6,1,3,7,2], 
                   'value': [2,4,7,6,5,9,3,2,4,3,1,5]})

# 第一步:提取所有不重复的timePoint和item
unique_times = df['timePoint'].unique()
unique_items = df['item'].unique()

# 第二步:生成timePoint和item的全笛卡尔积组合
full_grid = pd.MultiIndex.from_product(
    [unique_times, unique_items],
    names=['timePoint', 'item']
).to_frame(index=False)

# 第三步:和原数据左合并,自动填充缺失的value为NaN
final_df = pd.merge(full_grid, df, on=['timePoint', 'item'], how='left')

# 查看结果
print(final_df)

运行结果说明

运行后你会看到,每个timePoint下都包含了所有7个唯一item:

  • 比如timePoint=1里新增了item5、6、7,它们的value是NaN
  • timePoint=2里新增了item1、2、7,value为NaN
  • timePoint=3里新增了item4、5、6,value为NaN

这样就完美满足你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:13:53