【Pandas】列名に任意の文字列を含む列のみを抽出する
備忘録として
例としてDataFrameを作成
import pandas as pd
import numpy as np
A = np.random.randint(10, size=(3, 6))
df = pd.DataFrame(A, columns=['xx_0', 'yy_0', 'zz_0', 'xx_1', 'yy_1', 'zz_1'])
df
# xx_0 yy_0 zz_0 xx_1 yy_1 zz_1
# 0 1 7 2 0 8 4
# 1 9 4 4 3 6 0
# 2 3 4 9 5 8 2
'xx'を抽出したい文字列とする。
カラムの抽出にはブール値マスクを使ってみる。
データフレームをマスクするためのブール値配列を作成。リスト内包表記を使う。
mask = ['xx' in s for s in df.columns]
mask
# [True, False, False, True, False, False]
'xx' in s
は変数sに文字列xxが含まれる場合True
、そうでない場合はFalse
を返す。
loc
メソッドでカラム側のスライスにマスクを指定して
df.loc[:, mask]
# xx_0 xx_1
# 0 1 0
# 1 9 3
# 2 3 5
'xx'を含む列のみ抽出できた。loc
の代わりにiloc
でも良さそう。
Author And Source
この問題について(【Pandas】列名に任意の文字列を含む列のみを抽出する), 我々は、より多くの情報をここで見つけました https://qiita.com/wat604/items/d9ac000fabe6cca3c8b5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .