如果特定日期范围的值相同,则Pandas会删除行
发布时间:2020-12-20 12:00:15 所属栏目:Python 来源:网络整理
导读:我试着寻找类似的东西,但可以找到它.所以我有以下结构数据帧.我希望删除5天或更长时间内具有相同分数的行.因此,在下面的情况下,PeronID AB-123的记录从2/1到2/6需要删除,对于DG-3465从2/3到2/10也需要删除.但TY-9456没什么. 我正在考虑使用rolling(),但是对
我试着寻找类似的东西,但可以找到它.所以我有以下结构数据帧.我希望删除5天或更长时间内具有相同分数的行.因此,在下面的情况下,PeronID AB-123的记录从2/1到2/6需要删除,对于DG-3465从2/3到2/10也需要删除.但TY-9456没什么.
我正在考虑使用rolling(),但是对于AB-123而言只会删除2 / 1-2 / 5但不会删除2/6. PersonID Date Score AB-123 2/1/2016 0 AB-123 2/2/2016 0 AB-123 2/3/2016 0 AB-123 2/4/2016 0 AB-123 2/5/2016 0 AB-123 2/6/2016 0 AB-123 2/7/2016 67.5 AB-123 2/8/2016 73.4 AB-123 2/9/2016 70.5 AB-123 2/10/2016 68 DG-3465 2/1/2016 22.5 DG-3465 2/2/2016 25.6 DG-3465 2/3/2016 36.4 DG-3465 2/4/2016 36.4 DG-3465 2/5/2016 36.4 DG-3465 2/6/2016 36.4 DG-3465 2/7/2016 36.4 DG-3465 2/8/2016 36.4 DG-3465 2/9/2016 36.4 DG-3465 2/10/2016 36.4 TY-9456 2/1/2016 0 TY-9456 2/2/2016 0 TY-9456 2/3/2016 5.23 TY-9456 2/4/2016 4.12 TY-9456 2/5/2016 5.95 TY-9456 2/6/2016 6.97 TY-9456 2/7/2016 12.45 TY-9456 2/8/2016 15.61 TY-9456 2/9/2016 15.61 TY-9456 2/10/2016 15.61 试过几件不同的事情,但我有点不知所措.你会建议什么? 解决方法
您可以在“分数”列上滚动,计算运行的标准差,然后删除标准偏差为零的行以及前面的五行(这假设您要在连续的日期删除具有相同分数的行):
df.drop(np.unique(df.Score.rolling(5).std()[lambda x: x == 0].index.values - pd.np.arange(5)[:,None])) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |