Pandas: 部分一致に基づいて列を選択する方法


次のメソッドを使用して、部分一致に基づいて pandas DataFrame 内の列を選択できます。

方法 1: 部分一致に基づいて列を選択する

 #select columns that contain 'team'
df. loc [:, df. columns . str . contains (' team ')]

方法 2: 複数の部分一致に基づいて列を選択する

 #select columns that contain 'team' or 'rebounds'
df. loc [:, df. columns . str . contains (' team|rebounds ')]

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team_name ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' team_points ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' assists ': [11, 8, 10, 6, 6, 5, 9, 12],
                   ' rebounds ': [6, 7, 7, 6, 10, 12, 10, 9]})

#view DataFrame
print (df)

  team_name team_points assists rebounds
0 A 5 11 6
1 To 7 8 7
2 To 7 10 7
3 to 9 6 6
4 B 12 6 10
5 B 9 5 12
6 B 9 9 10
7 B 4 12 9

例 1: 部分一致に基づいて列を選択する

次のコードは、列名に「team」を含む pandas DataFrame 内のすべての列を選択する方法を示しています。

 #select columns that contain 'team'
df_team_cols = df. loc [:, df. columns . str . contains (' team ')]

#view results
print (df_team_cols)

  team_name team_points
0 to 5
1 to 7
2 to 7
3 to 9
4 B 12
5 B 9
6 B 9
7 B 4

名前に「チーム」が含まれる両方の列が返されることに注意してください。

例 2: 複数の部分一致に基づいて列を選択する

次のコードは、列名に「team」または「bounces」を含む pandas DataFrame 内のすべての列を選択する方法を示しています。

 #select columns that contain 'team' or 'rebounds'
df_team_rebs = df. loc [:, df. columns . str . contains (' team|rebounds ')]

#view results
print (df_team_rebs)

  team_name team_points rebounds
0 to 5 6
1 To 7 7
2 to 7 7
3 to 9 6
4 B 12 10
5 B 9 12
6 B 9 10
7 B 4 9

名前に「チーム」または「リバウンド」が含まれるすべての列が返されます。

: |演算子はパンダでは「OR」を表します。

これらの演算子を必要なだけ自由に使用して、部分的な文字列一致を検索できます。

追加リソース

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

Pandas で名前で列を選択する方法
Pandas でインデックスによって列を選択する方法
Pandas でデータ型によって列を選択する方法

コメントを追加する

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