python - 以 1 分钟的间隔时间计算行值的差异
问题描述
我有一个如下所述的数据框:
TIME PRCESS_NO VALUE
13:40:34 1111 10254
13:40:37 1111 25855
13:40:45 1111 10254
13:40:53 1111 10254
13:40:58 1111 68522
13:41:08 1111 10254
13:41:34 1111 10254
13:41:56 1111 25855
13:42:14 1111 10254
13:42:20 1111 10254
13:42:29 1111 68522
13:42:33 2222 68522
13:42:37 2222 25855
13:42:53 2222 10254
13:42:59 2222 10254
13:43:04 2222 25855
13:43:17 2222 10254
13:43:32 2222 10254
13:44:10 2222 68522
13:44:16 3333 68522
13:44:16 3333 25855
13:44:22 3333 25855
13:44:29 3333 68522
13:44:34 3333 68522
13:44:38 3333 10254
13:44:47 3333 10254
13:44:51 3333 10254
我想计算每个 PROCESS_No 的每 1 分钟间隔的 VALUE 差异。可能吗 ?
解决方案
您可以pd.Series.dt.floor
按分钟使用地板时间。假设您每次达到 0 秒时都指定分钟间隔。
然后删除重复项和我们GroupBy
+ diff
。
df['DT'] = pd.to_datetime(str(pd.to_datetime('today')) + ' ' + df['TIME'])
df['DT'] = df['DT'].dt.floor('min')
res = df.drop_duplicates('DT')
res['DIFF'] = res.groupby('PRCESS_NO')['VALUE'].diff()
print(res)
TIME PRCESS_NO VALUE DT DIFF
0 13:40:34 1111 10254 2018-08-28 13:40:00 NaN
5 13:41:08 1111 10254 2018-08-28 13:41:00 0.0
8 13:42:14 1111 10254 2018-08-28 13:42:00 0.0
15 13:43:04 2222 25855 2018-08-28 13:43:00 NaN
18 13:44:10 2222 68522 2018-08-28 13:44:00 42667.0
推荐阅读
- javascript - 使用 Javascript 对区分大小写的值进行分组
- r - R中每组的平均值减去分组值
- haskell - Haskell `cabal` 仅“部分”安装包
- python - Python:HTMLCalendar 中 formatweek() 方法中的“theweek”参数是什么?
- java - 使用许多 for 和 Ifs 语句简化方法
- wordpress - 如何在 wordpress 中将链接设为“domain.com/website.com”
- r - 将数据框列转换为存储在列表中的向量
- c++ - 删除 cout 会导致分段错误
- android - ARCore Unity Android | HelloAR 应用在手机上运行时崩溃
- nestjs - 如何使动态模块成为全局模块?