使用python根据日期条件删除行

冠心病

我有一个数据框,其中包括日期和ID列。以下是仅出于此问题目的的示例框架。但是实际数据包括更多的行和列。

from datetime import date, timedelta
import pandas as pd

date = datetime.datetime(2020, 1, 1)
delta_1 = 5
delta_2 = 15
delta_3 = 18

data = {
    'A': [date, date - timedelta(delta_1), date - timedelta(delta_2), date, date - timedelta(delta_3)], 
    'B': ['a', 'a', 'a', 'b', 'b']
}
df = pd.DataFrame(data)
print(df)

           A  B
0 2020-01-01  a
1 2019-12-27  a
2 2019-12-17  a
3 2020-01-01  b
4 2019-12-14  b

我要实现的是,对于每个唯一ID(B在示例中为),从最新的行开始,然后根据日期条件删除行:如果从最旧的ID开始的10天内插入了具有现有ID的行具有该ID的最近行,只有最新行才有效。因此,在此示例中,以10天为限制,我最终得到以下结果:

           A  B
0 2020-01-01  a
2 2019-12-17  a
3 2020-01-01  b
4 2019-12-14  b

任何想法将不胜感激!

贝尼

这是一种diff与结合使用的方法,cumsum可得到日差总和,然后通过//

s=df.groupby('B').A.apply(lambda x : x.diff().dt.days.cumsum().fillna(0).abs()//10)
df=df.groupby([df.B,s]).head(1)
           A  B
0 2020-01-01  a
2 2019-12-17  a
3 2020-01-01  b
4 2019-12-14  b

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫根据日期时间条件删除行

来自分类Dev

熊猫-Python,根据“日期”列删除行

来自分类Dev

使用dplyr根据R中不同事件之间的条件和日期差异删除行

来自分类Dev

根据多种条件删除行Python Pandas

来自分类Dev

根据日期和时间条件熊猫数据帧删除行

来自分类Dev

根据条件删除行

来自分类Dev

根据条件删除行

来自分类Dev

根据条件删除行

来自分类Dev

根据日期条件删除范围

来自分类Dev

根据可变日期删除行

来自分类Dev

根据日期比较删除行

来自分类Dev

如何根据条件使用python删除xml文件中的特定行?

来自分类Dev

根据相关条件删除行

来自分类Dev

根据多个条件删除行

来自分类Dev

根据条件删除布尔行

来自分类Dev

根据相关条件删除行

来自分类Dev

熊猫根据条件删除行

来自分类Dev

如何根据python中的条件从数据框中删除行?

来自分类Dev

根据用户输入条件删除行(Pandas,Python 3)

来自分类Dev

根据Python中的某些条件删除所有行

来自分类Dev

如何根据python中的条件从数据框中删除行?

来自分类Dev

根据用户输入条件删除行(Pandas,Python 3)

来自分类Dev

如何使用VBA根据条件删除Excel ListObject中的行?

来自分类Dev

根据相邻行中的日期删除行

来自分类Dev

根据不同的行条件删除组的行

来自分类Dev

awk根据日期条件过滤行

来自分类Dev

使用条件删除行

来自分类Dev

SQL根据日期差异删除行

来自分类Dev

根据输入框日期删除行