我正在我的数据框上寻找这样的渐变模式:
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)) &
]
后者会返回一个前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
363 1.5000
364 1.4375
365 1.4375
366 1.5000
A
364 1.4375
365 1.4375
366 1.5000
它有效,但我想改进它。我已经尝试了很多东西,我认为它可能是这样的:
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”
是我在网站上的第一个问题。提前致谢。
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容