条件式に基づいて Pandas DataFrame から行を削除する
df[(len(df['column name']) を使用するアプローチ< 2)] を使用して文字列長が 2 を超える行を削除するのは正しくありません。この式は行インデックスではなくキー True と False を持つブール DataFrame に評価されるため、KeyError が発生します。
条件式に基づいて行を削除するには、drop メソッドを利用できます。その仕組みは次のとおりです。
drop() を使用して行を削除する
df = df.drop(df[df['column name'].str.len() > 2].index)</p> <p>この例では、 df['column name'].str.len() > 2 は、文字列長が 2 より大きい行を示すブール値データフレームを作成します。このデータフレームのインデックス属性は、それらの行のインデックスを取得し、その後、drop() に渡されます。</p> <p><strong>代替構文</strong> </p> <pre class="brush:php;toolbar:false">df = df.drop(df[(df['column name'].str.len() > 2)].index)
この構文は、ブール値データフレームとインデックス抽出をより明確に分離します。
複数の条件
ブール値インデックスを使用すると、条件を組み合わせることができます。論理演算子を使用します。たとえば、文字列の長さが 2 を超え、スコアが 50 未満の行を削除するには:
df = df.drop(df[(df['column name'].str.len() > 2) & (df['score'] < 50)].index)
以上が条件式に基づいて Pandas DataFrame から行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。