gpt4 book ai didi

python - 如何检测时间序列数据是否几乎没有变化?

转载 作者:行者123 更新时间:2023-12-05 03:29:49 25 4
gpt4 key购买 nike

我想过滤 dataframe 中的一些列,其中整个数据几乎没有变化,其中一列的示例图如下所示:

enter image description here

我目前正在做的事情很简单,而且效率可能很低。

from collections import Counter

n = data2.shape[0]

for col in data2.columns:
most_freq = Counter(data2[col]).most_common(1)[0][1]
print(col, most_freq/n)

它的输出:

m0 0.25192519251925194
m1 0.5808580858085809
m2 0.09790979097909791
m3 0.0033003300330033004
m4 0.9713971397139713
m5 1.0
m6 1.0
m7 1.0
m8 1.0
m9 0.9713971397139713
m10 1.0
m11 1.0

如您所见,我想过滤掉具有大量不变值的列(如 m5、m6 等)。有没有更好的方法,也许是一些统计的方法?我看过类似的 question但这并没有太大帮助。

更新:

基于@Kosmo 的 answer ,这对我来说似乎很管用。至少,它帮助我去除了明显的扁平线。

data2 = data2.loc[:, (round(data2.var()) > 0)]

最佳答案

通过 variance threshold 选择特征.

如果您需要有关变异性的信息,方差是一个很好的统计数据

编辑:我认为更简洁的解决方案是简单地使用 DataFrame.var() 并基于它进行过滤。

关于python - 如何检测时间序列数据是否几乎没有变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70952238/

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