timedelta64 和日期时间转换

2023-12-04

我的数据框中有两个日期时间(时间戳)格式的列,df['start'], df['end']。我想知道两个日期之间的持续时间。所以我创建了持续时间列

df['duration'] = df['start'] - df['end']

然而,现在duration列的格式为numpy.timedelta64, 代替datetime.timedelta正如我所期望的。

>>> df['duration'][0]
>>> numpy.timedelta64(0,'ns')

While

>>> df['start'][0] - df['end'][0]
>>> datetime.timedelta(0)

有人可以向我解释为什么数组减法会改变timedelta类型?有没有办法让我保留datetime.timedelta因为它更容易合作?


这是在 pandas 0.15.0 中实现 Timedelta 标量的动机之一。查看完整文档here

在 >= 0.15.0 中实施timedelta64[ns]系列依旧np.timedelta64[ns]在引擎盖下,但所有内容都完全对用户隐藏datetime.timedelta子类标量,Timedelta(这基本上是 timedelta 和 numpy 版本的有用超集)。

In [1]: df = DataFrame([[pd.Timestamp('20130102'),
                         pd.Timestamp('20130101')]],
                        columns=list('AB'))

In [2]: df['diff'] = df['A'] - df['B']

In [3]: df.dtypes
Out[3]: 
A        datetime64[ns]
B        datetime64[ns]
diff    timedelta64[ns]
dtype: object

# this will return a Timedelta in 0.15.2
In [4]: df['A'][0] - df['B'][0]
Out[4]: datetime.timedelta(1)

In [5]: (df['A'] - df['B'])[0] 
Out[5]: Timedelta('1 days 00:00:00')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

timedelta64 和日期时间转换 的相关文章

随机推荐

  • 如何将 Lua 模块作为字符串而不是文件加载?

    我正在使用 LuaJava 和 Lua 的 C 代码 我想做的是读取在Android应用程序中存储为资源字符串的Lua源代码 以便可以执行读入的Lua源代码 我需要知道如何使用 LuaJava 或 C 语言来做到这一点 我想知道如何使用字符
  • Compact Framework 中的 MAC 地址

    如何仅使用紧凑框架获取 MAC 地址 1 4 的 OpenNETCF 代码从以下 P Invoke 调用中获取信息 DllImport iphlpapi dll SetLastError true public static extern
  • NgAnimate 页面加载 hack

    在更新 1 4 1 中 AngularJs Animate 不再像以前那样在页面加载时触发 我的旧解决方案类似对此 笨蛋 found here并一直工作到 v1 3 9
  • CSS 字体 Unicode 范围

    font face font family Nanum Barun Gothic src url NanumBarunGothic ttf unicode range U AC00 D7A3 U 1100 11FF U 3130 318F
  • 将新的拟合阶段添加到现有 PipelineModel 中,无需再次拟合

    我想将几个经过训练的管道连接到一个 这类似于 Spark 将新的拟合阶段添加到现有 PipelineModel 中 无需再次拟合 但是下面的解决方案适用于 PySpark gt pipe model new PipelineModel st
  • 火花笛卡尔积

    我必须比较坐标才能获得距离 因此 我使用 sc textFile 加载数据并制作笛卡尔积 文本文件中大约有 2 000 000 行 因此需要比较 2 000 000 x 2 000 000 坐标 我用大约 2000 个坐标测试了代码 几秒钟
  • fetchone() 正在将 int 变量设置为元组

    我有一个使用 Python 2 7 和 SQLite3 的项目 我正在尝试将整数变量存储在 SQLite3 数据库列中 然后能够将变量设置为 SQLite 列的值 连接正常 列存在 并且类型为 int 我正在使用此代码来提取数据 Trail
  • 有没有办法从以前的 apk 发布文件中获取私有签名的密钥库文件?

    我已经使用 eclipse 创建了私有签名的密钥库文件 并且我已经在 android market 网站上发布了 apk 文件 几天后 我们从用户那里收到了一些问题 我们已经解决了这些问题 但我没有私人签名的密钥库文件 在制作 apk 文件
  • 使用 VSTO 创建 UDF,而不使用 VBA

    与此类似question 但在我的情况下不是 VSTO SE 但是 我只是想确认不可能在 Visual Studio 2005 和 Excel 2003 中使用纯 VSTO 创建 UDF 所以 为了绝对清楚 我的问题是 是否可以使用 Vis
  • 从sql查询中的所有可用列中仅删除一列值的重复值

    我有一个包含三列的sql查询 我想删除beam current列中的任何重复值退出 如何做到这一点 我在sql server2012中工作 我使用了 Distinct 但我也得到了 beam current 的重复值 我的 sql 查询是
  • 如何将旧版构建系统与 Xcode 10 的“xcodebuild”一起使用?

    我想使用 Xcode 10 的新构建系统进行开发 但是我们在持续集成系统中的构建失败了 因为xcarchive制作有一个问题 Info plist in the xcarchive缺少ApplicationProperties密钥及其中的信
  • Select2-rails 无法与 ActiveAdmin 一起使用

    我在将 select2 rails 与 ActiveAdmin 集成时遇到困难 我按照设置步骤操作 Select2 rails Github 页面 https github com argerim select2 rails我添加了一行 r
  • c#编译的应用程序可以在未安装.net的机器上运行吗?

    我想为 Windows 开发一个小型实用程序 我更喜欢用 C 来做 因为它更容易 我是一名 Java 开发人员 该实用程序可供许多人下载 我假设其中一些人没有安装 net 框架 这个假设是否正确 假设我的目标是 win xp 及以上版本 我
  • 在Matlab中保存全局变量

    在 Matlab 中 当将变量声明为全局变量并使用 save 命令保存它时 在新会话中加载 mat 文件后 该变量也是全局变量 以下代码显示了此行为 一开始 我没有变量 gt gt who gt gt who global 然后 我创建全局
  • 更新间隔时间时警报管理器不工作

    阅读所有质量检查后 我没有得到任何正确的解决方案 我有 2 个问题1 即使我仅在清单中注册接收器 警报也会触发两次 不是通过代码 2 当我更新闹钟的间隔时间时 它会随机触发 这是我设置闹钟的方法 public void AlarmCall
  • 如何在java中扫描屏幕上的特定颜色/图像?

    我需要扫描屏幕上的特定图像 颜色 并返回该颜色出现位置的 x 和 y 坐标 我知道这可能包括使用 Robot 类截取屏幕截图 但不知道如何正确扫描该图像 如果您使用 Robot 类进行屏幕截图 您将获得 BuffereImage 类的对象
  • 使用 MIPS 的双重递归

    我正在尝试为该函数实现双重递归f n 2f n 1 3f n 2 1 我能够找出奇异递归并实现2f n 1 1它的一部分 但我不知道如何实现第二部分 这是我的奇异递归的工作代码 data prompt1 asciiz Enter the v
  • iPhone如何隐藏导航栏?

    目前我正在iPhone应用程序中工作 我有两个屏幕 如A和B A没有导航栏 但B有导航栏 所以我这样设置 Class A void viewDidLoad super viewDidLoad self title A self naviga
  • 将数据从部分视图提交到控制器 MVC

    我有一个就业记录列表 您还可以使用部分视图从同一页面添加就业记录 这里是雇佣 cshtml 它有一个记录列表的部分视图和一个用于添加出现在模式弹出窗口中的新记录的部分视图 h2 Employment Records h2 Html Rend
  • timedelta64 和日期时间转换

    我的数据框中有两个日期时间 时间戳 格式的列 df start df end 我想知道两个日期之间的持续时间 所以我创建了持续时间列 df duration df start df end 然而 现在duration列的格式为numpy t