首页 > 编程问答 >如何将pandas数据框中的timedelta转换为整数

如何将pandas数据框中的timedelta转换为整数

时间:2024-07-25 15:57:24浏览次数:13  
标签:python pandas timedelta

我正在尝试将 timedelta 转换为整数。但我收到错误。我不知道如何解决这个问题。有谁知道吗。

time = (pd.to_datetime(each_date2)-pd.to_datetime(each_date1))
pd.to_numeric(time, downcast='integer')

时间具有以下值:

Timedelta('7 days 00:00:00')

我在第二行收到以下错误:

TypeError: Invalid object type at position 0

任何帮助将不胜感激。提前致谢。


以下是将 Pandas 数据框中的 timedelta 列转换为整数(以秒、分钟、小时或天为单位)的方法:

了解错误

出现错误是因为 pd.to_numeric 旨在处理数值数组或标量,而不是 Timedelta 对象的 Series。

解决方案

可以使用 .dt 属性访问 Timedelta 对象的属性,并从那里转换为所需的单位:

import pandas as pd

# 示例数据
time = pd.to_timedelta(['7 days 00:00:00'])

# 转换为秒
time_in_seconds = time.dt.total_seconds().astype(int)
# time_in_seconds 现在包含 [604800]

# 转换为分钟
time_in_minutes = (time.dt.total_seconds() / 60).astype(int)

# 转换为小时
time_in_hours = (time.dt.total_seconds() / 3600).astype(int)

# 转换为天
time_in_days = time.dt.days.astype(int)
# time_in_days 现在包含 [7]

说明

  1. 访问 .dt 属性: Timedelta 对象存储在 Series 中。 .dt 属性允许访问时间增量值的不同属性。

  2. 选择单位:

  3. dt.total_seconds() : 以秒为单位返回持续时间。
  4. dt.days : 以天为单位返回持续时间。
  5. 对于分钟或小时,将 total_seconds() 除以适当的因子。

  6. 转换为整数: 使用 astype(int) 将结果转换为整数类型。

将此应用于的代码

将此应用于的代码示例,应该执行以下操作:

time = (pd.to_datetime(each_date2)-pd.to_datetime(each_date1))
time_in_days = time.dt.days.astype(int) 

这会将 Timedelta 对象列表转换为表示天数的整数列表。

标签:python,pandas,timedelta
From: 78791962

相关文章

  • 如何从另一个文件运行 python 文件
    我正在尝试从另一个名为LoginOrReg的文件运行一个名为HabitTracker的python文件,但是当我这样做时,它会重新运行LoginOrReg文件。我已经尝试过这个classLoginOrReg:def__init__(self,db,cursor,login_username,data):self.db=mysql.connector.......
  • Python的字典和集合
    一、字典1.定义字典字典和列表虽然类似,但是字典是无序的可变序列,并且可以像查字典一样去查找。字典的元素都是成对出现的,每个元素都是由冒号“:”和键值对(“:”左边的称为键或者Key,“:”右边的称为值或者Value)构成的,用“{}”标识,元素之间用逗号“‘,”分隔。字典的键必须是唯一......
  • 将 Pandas 数据帧转换为 Spark 数据帧错误
    我正在尝试将PandasDF转换为Sparkone。DFhead:10000001,1,0,1,12:35,OK,10002,1,0,9,f,NA,24,24,0,3,9,0,0,1,1,0,0,4,54310000001,2,0,1,12:36,OK,10002,1,0,9,f,NA,24,24,0,3,9,2,1,1,3,1,3,2,61110000002,1,0,4,12:19,PA,10003,1,1,7,f,NA,74,74,0,2,15,2,0,2,3,1,......
  • 在Python中字典是如何通过哈希表实现的以及哈希冲突是如何解决的
    哈希表(散列表)的工作原理哈希表是一种使用哈希函数组织数据,以支持快速插入和搜索的数据结构。它通过哈希函数将输入的键(key)映射到表中的一个位置(即索引或槽位),从而以接近常数时间复杂度进行查找、插入和删除操作。哈希表的基本工作流程如下:哈希函数:哈希函数接受一个输入(键),并......
  • python cobs协议编解码算法demo
    1.SummaryCOBS(ConsistentOverheadByteStuffing)是一种算法,直译为一致的开销字节填充。简而言之,无论数据包的内容如何,都能通过产生高效可靠明确的数据包帧,从而使接受端能够从损坏的包中恢复。通常使用0x00来作为数据包的分隔符,即切割数据包的片分隔符。当使用0x00作为......
  • 如何将unicode编码为字节,以便可以检索到原始字符串?在Python 3.11中
    在python3.11中,我们可以对字符串进行编码,如:string.encode('ascii','backslashreplace')这对于说:hellö=>hell\\xf6但是当我插入时hellöw\\xf6rldIgethell\\xf6w\\xf6rld(注意第二个有一个看起来像字符转义序列的文字部分)......
  • python flask允许跨域
    flask接口支持跨域设置方法在Flask中,可以通过安装flask-cors扩展来支持跨域请求。下面是使用flask-cors扩展的示例代码:fromflaskimportFlaskfromflask_corsimportCORS#ipinstallflask-corsapp=Flask(__name__)CORS(app)可以通过CORS扩展的origins参数......
  • Pandas 读取带空格的文件名
    我有一个由空格分隔的3列文本文件,我喜欢将其放入数据框中。我使用以下构造来执行此操作:df=pd.read_csv(my_file,sep='',skiprows=4,names=('cola','colb','filename'))效果很好,直到我遇到其中包含空格的文件名。我在pd.read_csv中找不到选项来限制列数并处......
  • 在 Python 中动态定义文字字符串排列的并集
    我有一个字符串列表:strings=['a','b','c']我想声明列表中所有可能的有序对的Union类型。硬编码,这看起来像:Literal我如何动态定义CustomType=Literal['ab','ac','aa','ba','bb','bc�......
  • 关于 Python 中装饰器缓存的困惑
    我正在使用Python装饰器来实现函数的缓存。我了解缓存结果以提高性能的基本概念,但我正在努力解决如何处理不同的函数参数并确保底层数据更改时缓存更新。我已经实现了一个基本装饰器,它将函数结果存储在基于参数的字典。但是,此方法无法处理函数参数可能具有复杂结构(如嵌套列......