Pandas数据帧numpy在多个条件下

时间:2017-12-01 20:40:17

标签: python pandas numpy dataframe where

使用pandas和numpy。我怎样才能实现以下目标:

sed -E "s/[^']*('[^']*').*/\1/" <<< "to_date('04/10/12','DD/MM/RR')"

如果没有如此难以重复的代码,如果它只是正在改变的数字?我想使用我提供的任何号码使用相同的代码,而无需手动输入全部内容吗?

用于比较列#34; a&#34;中的当前值。到上面一行的同一列中的值,以及上面两行等,并导致&#34; istrue&#34;如果所有这些条件都是真的

我尝试在for循环中移动数据帧,然后将值附加到列表并将其最大值计算为只有(df [&#34; a&#34;]&gt; = maxvalue)一次,但它不会&# 39;也适合我。我是Python的新手,可能会在不久的将来提出更多愚蠢的问题

这有效,但我希望它能在没有这么多重复代码的情况下工作,这样我就可以学会正确编码。我尝试了使用yield generator的示例,但无法使其工作

@Edit : 回答 Wen 。我需要df['thecol'] = np.where( (df["a"] >= df["a"].shift(1)) & (df["a"] >= df["a"].shift(2)) & (df["a"] >= df["a"].shift(3)) & (df["a"] >= df["a"].shift(4)) & (df["a"] >= df["a"].shift(5)) & (df["a"] >= df["a"].shift(6)) & (df["a"] >= df["a"].shift(7)) & (df["a"] >= df["a"].shift(8)) & (df["a"] >= df["a"].shift(9)) & (df["a"] >= df["a"].shift(10)) ,'istrue','isnottrue')

最后我想出了这种可怕的糟糕方法:

rolling

1 个答案:

答案 0 :(得分:2)

听起来像你需要np.where(df['a']==df['a'].rolling(10).max(),'istrue','isnottrue')

def get_layer0_outputs(model, test_data):
    output = model.layers[0].output
    inputs = [K.learning_phase()] + model.inputs
    func = K.function(inputs, [output])
    return func([0] + [test_data])