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

我相信我的问题非常简单,必须有一个非常简单的方法来解决这个问题,但是由于我对 Python 很陌生,我无法解决它。我看到了一些类似的问题,但没有一个与我面临的问题真正相关。


我有一个数据框,其中时间由“时间戳”列设置,以 YYYY-MM-DD HH:MM:SS 格式显示。我的目标是以总秒数绘制此列,因此将所有这些 Datatime 转换为从索引 0 到最后一个索引的秒数。基本上,我的第一个元素和最后一个元素之间的差异应该以秒为单位显示,并且我希望以秒为单位的计数从“时间戳”列的第一个元素(0s)开始。最后,我将其绘制为我的 x和速度和我的 y. 我的情况自然比我在这里发布的场景更复杂,因为我正在将外部文件加载到数据框中,它们可能会以不同的时间间隔显示时间戳。


            Timestamp      Category  ...      Status          Quantity

0     2011-02-14 20:00:00         1  ...          1               1

1     2011-02-14 20:00:01         1  ...          1               1

2     2011-02-14 20:00:02         1  ...          1               1.1

3     2011-02-14 20:00:03         1  ...          1               1.2

4     2011-02-14 20:00:04         1  ...          1               1.2

5     2011-02-14 20:00:05         1  ...          1               1.2

6     2011-02-14 20:00:06         1  ...          1               1.2

7     2011-02-14 20:00:07         1  ...          1               1.2

8     2011-02-14 20:00:08         1  ...          1               1.2


35999 2011-02-14 22:59:59         0  ...          1               2.3

希望我能做到简洁而准确。我非常感谢您对此的帮助!


四季花海
浏览 103回答 1
1回答

catspeake

使用 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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python