pandas - 两个日期之间的差异会产生不同的结果
问题描述
下面是一个示例熊猫数据框的示例,我试图找出两行中日期之间的差异(以日期最少的行为基础 - 在本例中为第二行)。2 个日期之间的差异大于 90 天,因此我期望 2 行为“假”。但由于某种原因,结果看起来不同。
PH_number date Type
H09879721 2018-10-29 AccountHolder
H09879731 2018-07-24 AccountHolder
Code:
print(df.date.diff()<=pd.Timedelta(90,'d'))
Current Result:
False
True
Expected Result:
False
False
任何建议,将不胜感激。
解决方案
abs
当差异为负时,请小心使用:
df.date.diff().abs().dt.days<=90
或者:
df.date.diff().abs().dt.days.le(90)
或者:
df.date.diff().abs()<=pd.Timedelta(90,'d')
或者:
df.date.diff().abs().le(pd.Timedelta(90,'d'))
0 False
1 False
Name: date, dtype: bool
推荐阅读
- php - Composer 的类映射在添加新文件时自动加载删除现有映射
- java - okhttp3 抛出 java.io.IOException: 关机
- elasticsearch - Elasticsearch 得分从 0 到 1,用于搜索与现有文档相似的文档
- python - 请求发布文件失败
- selenium - 如何使用硒或机器人编辑跨度文本并保存
- reactjs - Redux saga 函数在第一次尝试时没有运行
- javascript - 使用 ReactJS 的工作日的多个时间段
- python - 从 python 中的函数调用键盘记录器进入无响应状态
- mysql - SQL 查询 - 如果两者都没有,则显示
- php - CURL 响应发送到自定义 URL PHP/Laravel