パンダ: 特定の文字列を含む行をフィルターする方法


次の構文を使用して、pandas DataFrame 内の特定の文字列を含む行をフィルターできます。

 df[df[" col "]. str . contains (“ this string ”)]

このチュートリアルでは、次の DataFrame を使用したこの構文の実際の使用例をいくつか説明します。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C'],
                   ' conference ': ['East', 'East', 'East', 'West', 'West', 'East'],
                   ' points ': [11, 8, 10, 6, 6, 5]})

#view DataFrame
df

        team conference points
0 A East 11
1 A East 8
2 A East 10
3 B West 6
4 B West 6
5 C East 5

例 1: 特定の文字列を含む行をフィルターする

次のコードは、チーム列に「A」を含む DataFrame の行をフィルターする方法を示しています。

 df[df[" team "]. str . contains (“ A ”)]

	team conference points
0 A East 11
1 A East 8
2 A East 10

チーム列に「A」が含まれる行のみが保持されます。

例 2: リスト内の文字列を含む行をフィルターする

次のコードは、チーム列に「A」または「B」を含む DataFrame の行をフィルターする方法を示しています。

 df[df[" team "]. str . contains (“ A|B ”)]

	team conference points
0 A East 11
1 A East 8
2 A East 10
3 B West 6
4 B West 6

チーム列に「A」または「B」が含まれる行のみが保持されます。

例 3: 部分文字列を含む行をフィルターする

前の例では、1 つ以上の文字列に正確に一致する行に基づいてフィルター処理しました。

ただし、部分的な文字列を含む行をフィルタリングする場合は、次の構文を使用できます。

 #identify partial string to look for
keep=[" Wes "]

#filter for rows that contain the partial string "Wes" in the conference column
df[df. conference . str . contains (' | ' .join (keep))]

	team conference points
3 B West 6
4 B West 6

会議列に「Wes」が含まれる行のみが保持されます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

条件に基づいて Pandas DataFrame の行を削除する方法
複数の条件で Pandas DataFrame をフィルタリングする方法
Pandas DataFrame で「NOT IN」フィルターを使用する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です