我相信我的问题非常简单,必须有一个非常简单的方法来解决这个问题,但是由于我对 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()
添加回答
举报
0/150
提交
取消