python-3.x - 字符串到数据框列 HH:MM:SS.f 中的 total_seconds
问题描述
在 Python 3.7 中,我想将名为 'TIME' 的列中的字符串数据更改为total_seconds()
. 但是使用ax1.dt.total_seconds()
我收到 ValueError: expected hh:mm:ss format
这是当前数据框 ax1 中的列:-
我试过以下代码: -
ax1['TIME'] = pd.to_timedelta(ax1['TIME'])
ax1.dt.total_seconds()
ax1.map('{:,.2f}'.format)
非常感谢任何帮助!
解决方案
解决了我自己的问题。
我添加了
ax1['TIME'] = '00:' + ax1['TIME'].astype(str)
从现有的 MM:SS.f 格式获取 HH:MM:SS.f。
然后我跑了: -
ax1['TIME']=pd.to_timedelta(ax1['TIME'], unit= 'ms')
ax1['TIME_delta_secs']=ax1['TIME'].dt.total_seconds()
这unit
是我最初的问题中缺少的关键部分。
因为时间不是从零开始的。
#Finds 0
if any(dfs[i]['TIME_delta_secs'] == 0):
Zero_time = dfs[i][dfs[i]['TIME_delta_secs'] == 0].index.values[0]
dfs[i].loc[dfs[i].index[Zero_time:],"Time_delta_secs"] = dfs[i]['TIME_delta_secs'] + 3600
else:
pass
# Time difference
dfs[i]["time_diff"] = (dfs[i]['TIME_delta_secs']-dfs[i]['TIME_delta_secs'].shift(1))
dfs[i]['time_diff'] = dfs[i]['time_diff'].fillna(0)
# Total running Time
dfs[i]['Time_total'] = dfs[i]['time_diff'].cumsum()
cumsum()
是获得总运行时间的关键部分。
希望这对其他人有帮助。谢谢
推荐阅读
- sql-server - SQL SERVER 事务日志恢复
- python - 运行包时制作 setup.py 文件 ModuleNotFoundError
- webgl - 无法让 gl.ALPHA 通道在 WebGL 1 中工作
- javascript - 有没有办法从 Window 对象中完全封装 React
- excel - 如何使用 VBA 在 Excel 中仅对可见行进行序列编号?
- django - How to query Django LogEntry by content_type name?
- c - How to intentionally create .dep files?
- laravel - How do I customize laravel fatal error exception?
- java - excluding module/transitive dependencies from Gradle Build
- powershell-remoting - 远程停止进程