私はpandas DataFrameを持っており、特定の値のセットがTrueである行を選択したいと思います。任意の条件数でpandas DataFrameから行を選択
df = DataFrame([[True, True, True], [True, False, True], [True, True, False]], index=['a', 'b', 'c'], columns=['val1', 'val2', 'other'])#, columns=['val1', 'other'])
# example DataFrame:
val1 val2 other
a True True True
b True False True
c True True False
名前に文字列 'val'が含まれている列の値がTrueである行が必要です。この例のDataFrameの場合、これはカラム 'val1'と 'val2'の値が気になることを意味します。これまでのところは良い
cond = df['val1'] & df['val2']
df[cond]
# gives me:
val1 val2 other
a True True True
c True True False
:私は、これらの二つの列の特定の名前を知っていれば、この選択は簡単です。しかし、私の実際のユースケースでは、どれくらいの 'val'列があるのか、正確な名前は何か分かりません。
は、私が「ヴァル」の列の全てを取得する方法を知っている:
df.columns[df.columns.str.contains('val')]
# gives me:
Index([u'val1', u'val2'], dtype='object')
しかし、どのように私はこれらを一緒に入れていますか?任意の長さの列名のリストが与えられた場合、どのようにこれらの列がTrue値を持つ行を取得するためにブール索引付けを使用できますか?
あなたが投稿することができます希望の結果セット? – MaxU