pandas datafram中对应行之间的日期差

2024-09-24 22:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是pandas数据帧的示例。我试图找出两行日期之间的差异(以第一行为基数):

PH_number   date        Type
H09879721   2018-05-01  AccountHolder
H09879731   2018-06-22  AccountHolder

如果两个日期之间的差异在90天之内,那么应该将这两行添加到新的pandas数据帧中。date列的类型是object。在

我该怎么做?在


Tags: 数据示例类型numberpandasdateobjecttype
2条回答

使用^{}date列转换为datetime64[ns]数据类型,然后按给定方式进行减法:

df['date'] = pd.to_datetime(df['date'])

#if comparing with only 1st row
mask = (df['date']-df.loc[0,'date']).dt.days<=90
# alternative mask = (df['date']-df.loc[0,'date']).dt.days.le(90)

#if comparing with immediate rows.
mask = df['date'].diff().dt.days<=90
# alternative mask = df['date'].diff().dt.days.le(90)

df1 = df.loc[mask,:] #gives you required rows with all columns

使用.diff()

df.date.diff()<=pd.Timedelta(90,'d')

0    False
1     True
Name: date, dtype: bool

相关问题 更多 >