gpt4 book ai didi

python - 效率: Check if value in Pandas DataFrame has changed with an specific threshold

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:34 24 4
gpt4 key购买 nike

我有一个传感器记录的列。
此数据有一些噪音,因此在未检测到任何内容的情况下,每个时间点的值并不完全相同。
我想将记录的 DataFrame 拆分为仅包含“有趣”数据的新 DataFrame(值大于列“B”的某个阈值,在本例中大于 5)。
在此示例中,“A”表示时间戳,“B”表示带有噪声的传感器数据。
此示例的预期结果是两个 DataFrame。一个包含 5 到 6 行,另一个包含 10 到 12 行。

DataFrame 上的正常循环非常耗时,因为 DataFrame 有大约 24mio 行。有没有有效的方法来处理 pandas 或类似的此类问题?

编辑:

示例:


# | A | B
--+-----+-----
1 | 1 | 0.10
2 | 2 | 0.11
3 | 3 | 0.09
4 | 4 | 0.12
5 | 5 | 5.24
6 | 6 | 6.33
7 | 7 | 0.08
8 | 8 | 0.09
9 | 9 | 0.10
10| 10 | 7.54
11| 11 | 8.33
12| 12 | 9.03
13| 13 | 0.43

最佳答案

这是一个例子:

thresh = 5
s = df['B'].lt(thresh)

for k, v in (df.assign(c=s.cumsum())
.loc[~s]
.groupby('c')
):
print(v)

输出:

   A     B  c
#
5 5 5.24 4
6 6 6.33 4
A B c
#
10 10 7.54 7
11 11 8.33 7
12 12 9.03 7

选项 2:

for k, v in df.loc[~s].groupby(s.cumsum()):
print(v)

输出:

   A     B
#
5 5 5.24
6 6 6.33
A B
#
10 10 7.54
11 11 8.33
12 12 9.03

关于python - 效率: Check if value in Pandas DataFrame has changed with an specific threshold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59095532/

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