我在熊猫数据框中存储了几个月的数据。每个月可以分配额外的资源,并且数据会迅速增加。我试图找到发生增加的点(如果发生了)并删除所有先前的数据。
示例df:
data = [random.randint(1,10) if i < 15 else random.randint(70,80) for i in range(30)]
df = pd.DataFrame({'month': ['Jan']*len(data), 'data': data})
我想找到它从〜5->〜75跳到的点并摆脱以前的数据
如果系列没有急剧增加:
data = [random.randint(70, 80) for _ in range(30)]
是否应保留整个月的数据。
答案 0 :(得分:2)
这是我的解决方案,使用diff
和idxmax
n=70
s=df.groupby('month').data.diff()
df1=df[df.index>=(s>=n).groupby(df['month']).transform('idxmax')].copy()