python - 试图将一列日期减去另一个日期
问题描述
我有日期:
dateTo=pd.to_datetime('today').strftime('%Y-%m-%d')
我想减去dateTo
日期列:
number dates coord
AC 10 2018-07-10 11.54
AC 10 2018-07-11 11.19
AN 5 2018-07-12 69.40
所需的输出将是一个df['datepond']
带有减法输出的新列。我希望这个输出是整数。
我尝试的是Pandas 给出的响应:减去两个日期列,结果是一个整数:
df['datepond']=(pd.Timestamp(dateTo)-pd.to_datetime(df['dates']))/ np.timedelta64(1, 'D')
在 numpy 1.12.1 版本中它工作得很好但我现在在 numpy 1.15.2 并且它输出
TypeError: data type "datetime" not understood
我怎样才能获得所需的输出?
解决方案
您可以尝试Timestamp.floor
删除时间并将 timedeltas 转换为天数Series.dt.days
:
df['datepond']= (pd.to_datetime('today').floor('d') - pd.to_datetime(df['dates'])).dt.days
print (df)
number dates coord datepond
AC 10 2018-07-10 11.54 97
AC 10 2018-07-11 11.19 96
AN 5 2018-07-12 69.40 95
推荐阅读
- html - 具有多种布局的 Flexbox 布局
- reactjs - 部署到 GitHub 页面时收到错误
- swift - 在隐式展开可选值时意外发现 nil
- perl - 无法执行 ESQL.EXE 来确定 ESQL/C 库
- arrays - 在 1 个 foreach 循环中运行两个数组
- c# - 使用 CreateFileAsync 创建的文件在哪里?
- python - Python和Mysql问题
- c# - 将 SQL FROM 子句的结尾与正则表达式匹配
- python - Numpy genfromtxt 删除下划线
- python - Celery 的 app.control.broadcast 期望什么“命令”?