python - 将连续时间差 (timedelta) 转换为秒

标签 python pandas datetime dataframe timedelta

我使用以下方法计算了 d 的 DataFrame 中的连续时间差:

d['delta'] = (d['time'] - d['time'].shift()).fillna(0)

所以我在“delta”列中有时间差。我的问题是如何将其转换为秒?输出的格式为 00:50:00,我想将其转换为 3000 秒。

最佳答案

您的列是 timedelta64 类型,因此您可以使用 .dt 访问器来查找 seconds 属性:

d['delta'].dt.seconds

有关 .dt 访问器的更多信息可以找到 here .


正如 @Jeff 在评论中指出的那样,您可能最好使用 total_seconds() 而不是 seconds;后者仅返回整数(整数)秒数( 1 天 == 86400 秒),而前者将返回浮点值,计算较小的时间单位(ms、ns)以及天数值:

d['delta'].dt.total_seconds()

关于python - 将连续时间差 (timedelta) 转换为秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455652/

相关文章:

python - 当元素属于多个类别时按类别分组

python - 带有掩码和变换的 Groupby

c# - 计算使用 LINQ 函数实例化的 C# 对象中的天数

python - 在 Python 中按日期时间对缺少日期的用户列表进行排序

python - 如何在NLTK中调用ClassifierBasedTagger()

python - 在 pandas 数据框中查找行,其中不同的行在存储列表的列的列表中具有公共(public)值

Python - 如何使用 Pandas 编辑基于另一个 CSV 的 CSV

arrays - 在 CakePHP 3.x 中将数组转换为日期格式的字符串

python - 哪种算法可以合理地减少多个列表? ("who killed who"问题)

python - 测试的 SQL 脚本上的 SQLite3 语法错误