は、計算上(それだけの価値ができない場合があり/メモリワイズ)が、あなたのコードは、あなたのプライドを傷つけるし、夜にあなたを維持した場合、あなたはこれを試すことができます。
df_list = [Data['DivDown'],
Data['DivDown'].shift(1),
Data['DivDown'].shift(2),
Data['KelknerDown'],
Data['KelknerDown'].shift(1),
Data['KelknerDown'].shift(2)]
# Create a new df using df_list, preserving index
check_df = reduce(lambda x, y, pd.merge(x.to_frame(), y.to_frame(), left_index=True, right_index=True), df_list)
# Write over check_df with result
check_df = check_df.any(axis=1) # Returns True if any value in a row is True
# Merge check_df to original data
Data = pd.merge(check_df.to_frame(), Data, left_index=True, right_index=True, how='inner')
あなたは今、あなたはに対してチェックすることができ、データで追加の列を持っている必要があります。私が言ったように、あなたは非常に巨大なデータセットを持っていないか、追跡する必要がある非常に膨大な数の条件を持っていない限り、効率的ではないかもしれません。
必要に応じて他の分析のための条件を保存することもできます(機能の選択、クラスタリングなど)
開始 '== True'は冗長です。 – zipa
はい私は馬鹿のように感じる... – gdnaes