【发布时间】:2020-05-22 01:37:03
【问题描述】:
我只需要选择传感器类型 == 空气的情况,以四舍五入到最接近的 5 秒,但不知道我应该如何使用函数来实现这一点。
我确实有以下几行:
In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'timestamp' : ['2020-04-14 00:00:23', '2020-04-14 00:00:37',
'2020-04-14 00:01:01', '2020-04-14 00:01:05',
'2020-04-14 00:01:19'],
'sensor type' : ['sound', 'air', 'sound', 'air', 'sound']})
In [3]: df["timestamp"] = pd.to_datetime(df.timestamp)
In [4]: df["rounded_timestamp"] = df.groupby("sensor type").transform(lambda d: d.dt.round("5s"))
结果
In [5]: df
Out[5]:
timestamp sensor type rounded_timestamp
0 2020-04-14 00:00:23 sound 2020-04-14 00:00:25
1 2020-04-14 00:00:37 air 2020-04-14 00:00:35
2 2020-04-14 00:01:01 sound 2020-04-14 00:01:00
3 2020-04-14 00:01:05 air 2020-04-14 00:01:05
4 2020-04-14 00:01:19 sound 2020-04-14 00:01:20
因此,我确实有四舍五入时间的列。但仅对于空气传感器,时间应该四舍五入,我怎样才能得到一个带有空气传感器的圆形时间戳和声音传感器的非圆形时间戳的列?
【问题讨论】:
-
你为什么使用
groupby?