gpt4 book ai didi

python - 如果条目数小于一定数量,则每隔 15 秒删除所有条目

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:53 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示 enter image description here

我正在尝试使用数据平均值在 15 秒间隔内对数据进行重新采样。如果重采样中的条目数小于 100,我只想删除与该 15 S 秒间隔相对应的所有条目,并且让所有条目不仅仅是重采样数据帧。

ff = df.resample('15S', on='Timestamp').count()['Timestamp']

输出

Timestamp
2016-04-18 09:31:30 2
2016-04-18 09:31:45 275
2016-04-18 09:32:00 258
2016-04-18 09:32:15 255
2016-04-18 09:32:30 263
2016-04-18 09:32:45 246

应删除 15 秒间隔内所有值小于 100 的时间戳。我该怎么做?

最佳答案

我认为你需要Resampler.transform仅使用 count 过滤原始 DataFrame 的行更高为 100,还可以通过 values 将 boolena 掩码转换为 numpy 数组避免UserWarning:

df = pd.DataFrame({
'Timestamp': ['2016-04-18 09:31:30',
'2016-04-18 09:31:30',
'2016-04-18 09:31:30',
'2016-04-18 09:41:31',
'2016-04-18 09:41:30',
'2016-04-18 09:51:30',
'2016-04-18 09:51:30',
'2016-04-18 09:31:30',
'2016-04-18 09:31:30'],
'B': list(range(9))
})
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
print (df)
Timestamp B
0 2016-04-18 09:31:30 0
1 2016-04-18 09:31:30 1
2 2016-04-18 09:31:30 2
3 2016-04-18 09:41:31 3
4 2016-04-18 09:41:30 4
5 2016-04-18 09:51:30 5
6 2016-04-18 09:51:30 6
7 2016-04-18 09:31:30 7
8 2016-04-18 09:31:30 8
<小时/>
#in real data N = 100
N = 2
ff = df[df.resample('15S', on='Timestamp')['Timestamp'].transform('count').values > N]
print (ff)
Timestamp B
0 2016-04-18 09:31:30 0
1 2016-04-18 09:31:30 1
2 2016-04-18 09:31:30 2
3 2016-04-18 09:41:31 3
4 2016-04-18 09:41:30 4

关于python - 如果条目数小于一定数量,则每隔 15 秒删除所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53469730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com