0
我有一个多指标以下数据框:添加新列使用滚动(),以大熊猫多指标数据框MAX()
dates = pd.date_range(start='2016-01-01 09:30:00', periods=20, freq='s')
df = pd.DataFrame({'A': [1] * 20 + [2] * 12 + [3] * 8,
'B': np.concatenate((dates, dates)),
'C': np.arange(40)})
df = df.set_index(["B","A"])
现在我想创建一个新的列是最大值为索引A的最后两个值我尝试以下:
df.loc[:,"D"] = df.groupby(level="A").rolling(2).max()
但它仅产生N/A为新的列(“d)中,由于数据帧分组索引的顺序是原始的相反数据帧。
我该如何解决这个问题?因为我有一个大的数据框,所以我更愿意远离堆栈/堆栈,swaplevel/sortlevel,join或concat,这些操作往往非常耗时。