我正在寻找我的数据框上的渐变模式,如下.loc

我正在我的数据框上寻找这样的渐变模式:

df.loc[(
        (df['A'].shift(-0).lt(1.7)) &
        (df['A'].shift(-1).lt(1.7)) &
        (df['A'].shift(-2).lt(1.7)) &
        (df['A'].shift(-3).lt(1.7)) &
        (df['A'].shift(-4).lt(1.7)) &
        (df['A'].shift(-5).lt(1.7)) &
]

图片[1]-我正在寻找我的数据框上的渐变模式,如下.loc-唐朝资源网

后者会返回一个前6个值小于1.7的df,例如:

数据框将如下所示(之前和之后):

         A
329    15.1252
330    13.1251
331     1.3125
332     1.5625
333    39.5625
346    45.6875

347    11.0000
348    11.0000
354     1.8125
355     1.8125
358     1.4375
359     1.4375
360     1.5000
361     1.5000
362     1.5000

图片[2]-我正在寻找我的数据框上的渐变模式,如下.loc-唐朝资源网

363 1.5000 364 1.4375 365 1.4375 366 1.5000 A 364 1.4375 365 1.4375 366 1.5000

图片[3]-我正在寻找我的数据框上的渐变模式,如下.loc-唐朝资源网

它有效,但我想改进它。我已经尝试了很多东西,我认为它可能是这样的:

parameters = [
    [0, 1.7],
    [1, 1.7],
    [2, 1.7],
    [3, 1.7],

    [4, 1.7],
    [5, 1.7],
]
conditions = ([ ' & ' .join(['(df["A"].shift(-{0}).lt({1}))'.format(x[0], x[1]) for x in parameters])])
conditions = '(' + conditions ')'
df.loc[conditions]

似乎“条件”作为引号之间的字符串返回,字面意思是“条件”,所以 df.loc[conditions] 返回一个“KeyError”

是我在网站上的第一个问题。提前致谢。

© 版权声明
THE END
喜欢就支持一下吧
点赞238 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片