ホームページ > バックエンド開発 > Python チュートリアル > 条件式に基づいて Pandas DataFrame から行を削除するにはどうすればよいですか?

条件式に基づいて Pandas DataFrame から行を削除するにはどうすればよいですか?

DDD
リリース: 2024-11-13 15:23:02
オリジナル
697 人が閲覧しました

How to Delete Rows from a Pandas DataFrame Based on a Conditional Expression?

条件式に基づいて 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート