我在时间维度上对熊猫有一个门槛,比如说
threshold = datetime(2022, 1, 3, 9)我有一个带有时间戳的数据。我想数一数我的数据点中有多少是在15分钟内(比如说)在阈值附近落下来的。
在这种情况下,阈值是1月3日9点。我想知道. 830到845,845和9,9和915,915和930之间有多少个观察,等等。
我该怎么做?谢谢
发布于 2022-06-28 17:13:46
您可以使用pd.grouper在15分钟(或任何其他)时间内分组。
样本数据
s_ts = datetime.datetime(2022,6,27,8)
e_ts = datetime.datetime(2022,6,27,11)
n = 30
df = pd.DataFrame({'ts': [faker.date_time_between(start_date=s_ts, end_date=e_ts) for _ in range(n)]} )
print(df.head())
ts
0 2022-06-27 08:22:21
1 2022-06-27 08:38:28
2 2022-06-27 10:27:56
3 2022-06-27 10:14:45
4 2022-06-27 09:04:47然后,grouby与grouper一起使用。
df.groupby(pd.Grouper(key='ts', freq="15T")).agg({'ts':'count'})结果
ts
ts
2022-06-27 08:00:00 2
2022-06-27 08:15:00 4
2022-06-27 08:30:00 3
2022-06-27 08:45:00 2
2022-06-27 09:00:00 3
2022-06-27 09:15:00 2
2022-06-27 09:30:00 1
2022-06-27 09:45:00 2
2022-06-27 10:00:00 5
2022-06-27 10:15:00 4
2022-06-27 10:30:00 2注意:您必须使用日期算法和选择筛选groupby之前或之后所需的时间段作为阈值。
https://stackoverflow.com/questions/72789487
复制相似问题