python - Python 3 - 我需要为每个系统创建一个带有 ceil 和 floor 的新 df
问题描述
每个人。
所以我有一个数据框,它包含每个系统描述的每个故障、故障事件、开始时间和结束时间。我需要将开始时间四舍五入到最低十分钟,将结束时间四舍五入到最高十分钟。
例如:
system event start end
A0201 No communication 2021-01-01 00:03:20 2021-01-01 01:36:01
A0202 Turbine Pause 2021-01-01 11:47:23 2021-01-01 11:49:43
A0201 Acelerometer Vib 2021-01-02 16:47:30 2021-01-02 16:53:51
我需要的输出是:
system event start end
A0201 No communication 2021-01-01 00:00:00 2021-01-01 01:40:00
A0202 Turbine Pause 2021-01-01 11:40:00 2021-01-01 11:50:00
A0201 Acelerometer Vib 2021-01-02 16:40:00 2021-01-02 17:00:00
这只是我的数据框的 3 行。我的 df 有 10.000 多行,包含 49 个不同的系统和 100 多个故障事件
我想到了 ceil() 和 floor() 函数,但我在编写 for 循环时遇到了困难。谁能帮我?
谢谢!
解决方案
假设您的start
andend
列已经是 type datetime
,您可以使用.dt.floor
and .dt.ceil
with10min
作为频率:
df.start = df.start.dt.floor('10min')
df.end = df.end.dt.ceil('10min')
df
# system event start end
#0 A0201 No communication 2021-01-01 00:00:00 2021-01-01 01:40:00
#1 A0202 Turbine Pause 2021-01-01 11:40:00 2021-01-01 11:50:00
#2 A0201 Acelerometer Vib 2021-01-02 16:40:00 2021-01-02 17:00:00
推荐阅读
- python - Psycopg2 - SQL 脚本不返回任何输出
- perforce - Perforce - 从命令行提交特定的文件列表
- yii2 - Yii2计算两列结果差
- javascript - lit-element:constructor() 中 ul 元素的 appendChild 呈现在错误的 dom 位置
- python - 根据来自另一个数据帧的匹配值过滤一个数据帧中的记录
- reactjs - React 应用程序显示 azure devops 构建/标记版本
- python - 组合条形图和线图的问题(python)
- facebook-graph-api - 当从 Facebook 请求 user_link 权限时,GraphRequest.newMeRequest() 返回一个空对象
- python - 具有无限浮点数的python技术问题
- c# - 如何在Andriod上处理xamarin表单http客户端超时错误