pythonで特定文字列を含む/含まない列名を取得

python環境において,pandasデータフレームの列から指定の文字列を含む列を取得する方法について。

(本ページにて紹介しているコードはgithubにて公開しています。)

DataAnalOji.hatena.sample/python_samples/blog_extract_column_contain_specific_character.ipynb at master · Data-Anal-Ojisan/DataAnalOji.hatena.sample
samples for my own blog. Contribute to Data-Anal-Ojisan/DataAnalOji.hatena.sample development by creating an account on GitHub.

サンプルデータの読み込み

サンプルデータとしてboston housingの特徴量を利用しています。

import pandas as pd
from sklearn.datasets import load_boston

# インスタンスの生成
boston = load_boston()

# 特徴量をデータフレームに格納
df = pd.DataFrame(boston.data, columns=boston.feature_names) 

# 列名一覧を表示
print('列名一覧:', format(df.columns.values))

# データフレームを表示
display(df)
列名一覧: ['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO'
 'B' 'LSTAT']

特定文字列を含む列名を取得

python組み込みのin演算子を用いて,特定の要素(文字列)を含む列名を取得する。

# 対象となる文字列
character = 'N'

# 対象文字列を含む列名を取得
column_inc_specific_char = [column for column in df.columns if character in column]

# 取得した列名の表示
print("取得した列名:", format(column_inc_specific_char))

# 取得した列名のみのデータフレームの表示
display(df[column_inc_specific_char])
取得した列名: ['ZN', 'INDUS', 'NOX']

特例文字列を”含まない”列名の取得

python組み込みのnot in演算子を用いて,特定の要素(文字列)を含まない列名を取得する。

# 対象となる文字列
character = 'N'

# 対象文字列を含まない列名を取得
column_not_inc_specific_char = [column for column in df.columns if character not in column]

# 取得した列名の表示
print("取得した列名:", format(column_not_inc_specific_char))

# 取得した列名のみのデータフレームの表示
display(df[column_not_inc_specific_char])
取得した列名: ['CRIM', 'CHAS', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']

コメント