Groupby、aggregate、apply など、Pandas の多くの操作は演算子連鎖を通じて実行できます。ただし、行のフィルタリングは通常、従来のブラケット インデックスを使用して行われます。
df_filtered = df[df['column'] == value]
このアプローチでは、フィルタリングの前に df を変数に割り当てる必要があり、面倒な場合があります。フィルタ操作を連鎖させるもっと便利な方法はありますか?
回答:
質問に示されているコードの最後の行は不明瞭ですが、「連鎖」フィルタリングは次のように行うことができます。これは、ブール型インデックスで基準を連鎖させることによって実現されます。
df[(df.A == 1) & (df.D == 6)]
さらに、ユーザーは独自のマスク メソッドを定義し、それをフィルタリングに使用できます。
def mask(df, key, value): return df[df[key] == value] pandas.DataFrame.mask = mask df = pandas.DataFrame(np.random.randint(0, 10, (4,4)), index=list('abcd'), columns=list('ABCD')) df.mask('A', 1) df.mask('A', 1).mask('D', 6)
これにより、フィルター操作の便利な連鎖が可能になります。 .
以上が演算子連鎖を使用して Pandas のデータフレーム行をフィルタリングできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。