类型错误:无法从 ndarray 中减去 DatetimeArray

2024-02-18

我的数据框中有两列 - 开始日期和完成日期(它是时间戳)。我想通过找出差异来计算运行时间。当我运行下面的代码时,出现错误:TypeError: cannot subtract DatetimeArray from ndarray。我也无法将完成日期列拆分为日期和时间,以便我可以以另一种方式计算运行时间。

# calculate runtime 
pd.to_datetime(df.start_date)
pd.to_datetime(df.finish_date)

diff = pd.to_datetime(df.finish_date) - pd.to_datetime(df.start_date)

数据框如下所示: df

file_name                unique_id                                      start_date                         finish_date
        
file1         1716b94a8d8d83c8fffe4bdd14d536ae1ee9cba6bf17e6...   2020-09-03T16:18:38.929863799Z          2020-09-03T16:20:17.615093582Z
        
file2         87ff84ab119b798312230fceb3a8730fe74669a373650a...   2020-09-03T16:26:25.075167073Z          2020-09-04T00:04:39.702686798Z

我怎么能够 -

  1. 要么找到完成日期和开始日期之间的差异?
  2. 将列拆分为日期和时间。

假设您要计算日期之间的天数,那么这是一种解决方案:

import datetime as dt
diff = (pd.to_datetime(df.finish_date) - pd.to_datetime(df.start_date)).dt.days

EDIT

另一种选择是

Start = pd.to_datetime(df.finish_date)
End  = pd.to_datetime(df.start_date)
End.subtract(Start)

示例:这里我选择计算 df 中的日期与现在之间的差异。

metric_id device_id            timestamp  cpu_5min  vol_max
0          device_1  2020-12-04 05:15:00     116.0    734.0
1          device_1  2020-12-04 05:30:00     213.0    325.0
2          device_1  2020-12-04 05:35:00     427.0    668.0
3          device_2  2020-12-04 05:15:00     540.0      NaN
4          device_2  2020-12-04 05:30:00     127.0      NaN
5          device_2  2020-12-04 05:35:00     654.0      NaN

and

df['tDATE'] = pd.to_datetime(df['timestamp'])
df['DIFF1'] = (df['tDATE'] - dt.datetime.now()).dt.days  #method 11
df['DIFF2'] = df['tDATE'].subtract(dt.datetime.now()) #method2

返回

metric_id device_id            timestamp  cpu_5min  vol_max  \
0          device_1  2020-12-04 05:15:00     116.0    734.0   
1          device_1  2020-12-04 05:30:00     213.0    325.0   
2          device_1  2020-12-04 05:35:00     427.0    668.0   
3          device_2  2020-12-04 05:15:00     540.0      NaN   
4          device_2  2020-12-04 05:30:00     127.0      NaN   
5          device_2  2020-12-04 05:35:00     654.0      NaN   

metric_id               tDATE  difd  DIFF1                     DIFF2  
0         2020-12-04 05:15:00   -14    -14 -14 days +22:13:26.627607  
1         2020-12-04 05:30:00   -14    -14 -14 days +22:28:26.627607  
2         2020-12-04 05:35:00   -14    -14 -14 days +22:33:26.627607  
3         2020-12-04 05:15:00   -14    -14 -14 days +22:13:26.627607  
4         2020-12-04 05:30:00   -14    -14 -14 days +22:28:26.627607  
5         2020-12-04 05:35:00   -14    -14 -14 days +22:33:26.627607  

编辑:使用时间戳

从您下面的评论中可以看出,由于您正在使用此时间戳,所以上面的示例显然需要准备。请注意,这就是为什么在提出问题时提供足够的信息很重要(例如,您正在处理什么类型的数据)。当涉及到日期时,这一点甚至更加重要,因为有多种格式。这是您在评论中给出的日期格式的示例:

import datetime as dt

Date = '2020-09-03T16:18:38.929863799Z'
Date2  = '2020-10-03T16:18:38.929863799Z'

你这里有的是Timestamps,所以你的第一步是将它们转换为datetime然后使用to_pydate(它过去被称为Timestamp.to_datetime()但现已弃用。

Date = pd.to_datetime(Date)
Date2  = pd.to_datetime(Date2)

DATE_1 = Date.to_pydatetime()
DATE_2 = Date2.to_pydatetime()

之后你可以计算差异

DIFF = (pd.to_datetime(DATE_1) -pd.to_datetime(DATE_2))

这是Timedelta('-30 days +00:00:00')

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:无法从 ndarray 中减去 DatetimeArray 的相关文章

随机推荐

  • MySQL选择昨天的日期

    如何显示和统计日期为昨天的值 我用了time 在数据库中插入日期 例子 URL google com youtube com google com youtube com test com youtube com DateVisited 1
  • 在 Java 中打印数组

    我正在编写一个方法来打印它传递的每个对象 通过调用该方法可以正常工作Object toString 方法适用于对象 但不适用于数组 我可以找出它是否是一个数组Object getClass isArray 方法 但我不知道如何投射它 int
  • 继承的 CSS 属性的特殊性

    继承属性收到的 CSS 特异性级别是多少 我通读了有关 CSS 特异性的 W3 建议 因此我了解如何计算直接针对同一元素的 css 规则的不同特异性 但我没有看到其中提到继承属性的特异性级别 特别是 我遇到的问题与标题元素有关 尽管我很有兴
  • wpf按钮背景图片

    我有一个带有 5 个按钮的 wpf 页面 所有 5 个按钮必须具有相同的大小 并且必须具有相同的背景图像 这个怎么做 问候 卡恩 使用样式 这将自动应用于all窗口中的按钮
  • 如何在ansible命令中传递用户/密码

    我想使用 Ansible 作为另一个 Python 软件的一部分 在该软件中 我有一个主机列表及其用户 密码 有没有办法将 SSH 连接的用户 密码传递给 Ansible ad hoc 命令或以加密方式将其写入任何文件中 还是我理解错了 唯
  • 如何将变量从 awk 传递到 shell 命令?

    我正在尝试从 awk 中为文件的每一行运行 shell 命令 并且 shell 命令需要一个输入参数 我尝试使用system 但它无法识别输入参数 该文件的每一行都是一个文件的地址 我想运行一个命令来处理该文件 因此 对于一个简单的示例 我
  • 实体框架 - 我应该如何实例化我的“实体”对象

    我是实体框架和 ASP Net MVC 的新手 主要从教程中学习 但对两者都没有深入的了解 我确实有 Net 2 0 ADO Net 和 WebForms 的经验 我当前的怀疑来自于我实例化实体对象的方式 基本上我在我的控制器中这样做 pu
  • Python 数组重塑形状数组问题(无,192)

    我有这个错误 我不知道如何重塑有尺寸的地方None Exception Error when checking expected input 1 to have shape None 192 but got array with shape
  • 在 Rails 3.1 的开发模式下启用图像缓存

    在 Rails 3 1 开发模式中 使用资产管道时 从资产 图像中提供的图像会附带响应标头 缓存控制 必须重新验证 这意味着 Google Chrome 似乎只有 Chrome 将尝试多次重新获取图像 即使在单个页面视图期间也是如此 这导致
  • SSL_connect 返回=1 errno=0 状态=错误:在 ruby​​ 和 Ubuntu 14.04 中证书验证失败

    我有一个与第三方网络服务集成的 Rails 应用程序 自最初开发以来 它多年来一直运行良好 由于某种意想不到的原因 它突然停止工作了 我想说我们没有更改代码中的任何内容 唯一可以与之相关的是我们的 Letscrypt SSL 证书已过期并且
  • 使用 Entity Framework 4.0 中的上下文确定实体的主键

    我有几个从实体框架数据模型生成的实体 在 edmx 文件中 我可以看到标记为主键的属性 我的 POCO 自定义上下文是从此模板和 T4 模板生成的 我正在寻找一种方法来使用 Entity Framework 4 0 的反射来找出实体的主键
  • 自己的 std::is_function 实现

    建议here http en cppreference com w cpp types is function按以下方式实施 template
  • Java 8 ifPresent 与三元运算符

    你认为哪个更好 当然有争论 Optional ofNullable userName ifPresent nonNullUserName gt header setUser createUser nonNullUserName or hea
  • 如何实现 PlaceAutocompleteFragment 和 PlaceAutocompleteActivity 来获取地点详细信息

    我在用谷歌地方 https developers google com places android api hl en获取地点详细信息 Google 提供了不同的方式来实现 Google Place API 来获取地点详细信息 不同的方式
  • 返回值存储在内存的什么位置?

    返回值存储在内存的什么位置 考虑以下代码 int add int a int b int result a b return result void main int sum add 2 3 When add 2 3 被调用时 2个函数参数
  • 2012 年附加到流程

    我们曾经在 VS 2010 中附加了进程宏 这非常方便 既然宏在 Visual Studio 2012 中消失了 是否存在可以为我们执行此操作的插件 我们的宏将附加到 w3 exe 进程 这非常漂亮 也许我需要将宏转换为插件 我使用这个扩展
  • 神奇记录迁移失败“找不到源存储的模型”

    我们对 CoreData 模型进行了一些更改 看起来自动迁移失败了 即使我们将当前模型设置为用于生成数据的原始模型 仍然会出现错误 Reason 找不到源商店的模型 2014 09 05 02 19 43 297 948 166846 LB
  • 用户“postgres”的 Docker 密码身份验证失败

    我正在编写一个 docker compose 文件来启动一些服务 但数据库服务是个麻烦制造者 我总是收到此错误 FATAL password authentication failed for user postgres DETAIL Pa
  • 这个错误应该被修复吗?

    昨天我在 Net框架中发现了一个bug 并且发现这是一个已知的bug 不会被修复 简而言之 该错误在于 当将 int 以及可能的其他二进制类型 分配给该字段时 包含 IComparable 类型字段的类无法进行二进制序列化和反序列化 Ser
  • 类型错误:无法从 ndarray 中减去 DatetimeArray

    我的数据框中有两列 开始日期和完成日期 它是时间戳 我想通过找出差异来计算运行时间 当我运行下面的代码时 出现错误 TypeError cannot subtract DatetimeArray from ndarray 我也无法将完成日期