为了账号安全,请及时绑定邮箱和手机立即绑定

将熊猫数据框中的数据时间列转换为秒

将熊猫数据框中的数据时间列转换为秒

四季花海 2022-05-19 14:29:26
我相信我的问题非常简单,必须有一个非常简单的方法来解决这个问题,但是由于我对 Python 很陌生,我无法解决它。我看到了一些类似的问题,但没有一个与我面临的问题真正相关。我有一个数据框,其中时间由“时间戳”列设置,以 YYYY-MM-DD HH:MM:SS 格式显示。我的目标是以总秒数绘制此列,因此将所有这些 Datatime 转换为从索引 0 到最后一个索引的秒数。基本上,我的第一个元素和最后一个元素之间的差异应该以秒为单位显示,并且我希望以秒为单位的计数从“时间戳”列的第一个元素(0s)开始。最后,我将其绘制为我的 x和速度和我的 y. 我的情况自然比我在这里发布的场景更复杂,因为我正在将外部文件加载到数据框中,它们可能会以不同的时间间隔显示时间戳。            Timestamp      Category  ...      Status          Quantity0     2011-02-14 20:00:00         1  ...          1               11     2011-02-14 20:00:01         1  ...          1               12     2011-02-14 20:00:02         1  ...          1               1.13     2011-02-14 20:00:03         1  ...          1               1.24     2011-02-14 20:00:04         1  ...          1               1.25     2011-02-14 20:00:05         1  ...          1               1.26     2011-02-14 20:00:06         1  ...          1               1.27     2011-02-14 20:00:07         1  ...          1               1.28     2011-02-14 20:00:08         1  ...          1               1.235999 2011-02-14 22:59:59         0  ...          1               2.3希望我能做到简洁而准确。我非常感谢您对此的帮助!
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

使用 Timedeltas 减去第一个值 bySeries.sub并转换为秒 by Series.dt.total_seconds

df['td'] = df['Timestamp'].sub(df['Timestamp'].iat[0]).dt.total_seconds()

如果有所有秒数,则获取范围从0到 DataFrame 的长度。

所以同样的输出是:

df['td'] = range(len(df))

或者:

df['td'] = df.index

如果需要秒:

df['td'] = pd.to_timedelta(df['Timestamp'].dt.strftime(%H:%M:%S)).dt.total_seconds()


查看完整回答
反对 回复 2022-05-19
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信