给出如下的DataFrame:
dfx = pd.DataFrame({"ID":["A", "A", "C" ,"B", "B"],
"date":["01/01/2014","01/31/2014","01/23/2014","01/01/2014","01/20/2014"]})
我想删除“重复”。 “重复”定义为行ID相同的行,但它们之间的“日期”小于30天。
删除“重复项”后生成的DataFrame预计显示为:
ID date
A 01/01/2014
A 01/31/2014
C 01/23/2014
B 01/01/2014
答案 0 :(得分:2)
date
转换为日期时间。date
组ID
,找出连续行之间的差异timedelta
差异中提取日期组件,并将其与30 dfx
醇>
dfx[~pd.to_datetime(dfx.date).groupby(dfx.ID).diff().dt.days.lt(30)]
ID date
0 A 01/01/2014
1 A 01/31/2014
2 C 01/23/2014
3 B 01/01/2014