パンダ: 特定の文字列を含む列を選択する方法


次のメソッドを使用して、pandas DataFrame 内の特定の文字列を含む列を選択できます。

方法 1: 特定の文字列を含む列を選択する

 df. filter (regex=' string1 ')

方法 2: 複数の文字列のいずれかを含む列を選択する

 df. filter (regex=' string1|string2|string3 ')

次の例は、次の pandas DataFrame でこれらの各メソッドを実際に使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' mavs ': [10, 12, 14, 15, 19, 22, 27],
                   ' cavs ': [18, 22, 19, 14, 14, 11, 20],
                   ' hornets ': [5, 7, 7, 9, 12, 9, 14],
                   ' spurs ': [10, 12, 14, 13, 13, 19, 22],
                   ' net ': [10, 14, 25, 22, 25, 17, 12]})

#view DataFrame
print (df)

   mavs cavs hornets spurs nets
0 10 18 5 10 10
1 12 22 7 12 14
2 14 19 7 14 25
3 15 14 9 13 22
4 19 14 12 13 25
5 22 11 9 19 17
6 27 20 14 22 12

例 1: 特定の文字列を含む列を選択する

次のコードは、 filter()関数を使用して、名前のどこかに文字列「avs」を含む列のみを選択する方法を示しています。

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs ')

#view DataFrame
print (df2)

   mavs cavs
0 10 18
1 12 22
2 14 19
3 15 14
4 19 14
5 22 11
6 27 20

名前に「avs」を含む列のみが返されます。

この場合、返される列は「mavs」と「cavs」のみです。

例 2: 複数の文字列のいずれかを含む列を選択する

次のコードは、 filter()関数を使用して、名前のどこかに「avs」または「ets」を含む列のみを選択する方法を示しています。

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs|ets ')

#view DataFrame
print (df2)

   mavs cavs hornets nets
0 10 18 5 10
1 12 22 7 14
2 14 19 7 25
3 15 14 9 22
4 19 14 12 25
5 22 11 9 17
6 27 20 14 12

名前に「avs」または「ets」を含む列のみが返されます。

垂直バー ( | ) は、pandas の「 OR 」演算子であることに注意してください。

これらの「OR」演算子を好きなだけ連鎖させて、さまざまな文字列の 1 つを含む列を選択してください。

追加リソース

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

パンダ: DataFrame の前に列を移動する方法
パンダ: 列に文字列が含まれているかどうかを確認する方法
Pandas: DataFrame に空の列を追加する方法 (3 つの例)

コメントを追加する

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