やりたいこと
csvをpandas.DataFrameで読み込んだ後、特定の型を持つ列だけを抽出・除外して処理を行いたい。
手法
手法1. select_dtypesを用いる
ドキュメントより
select_dtypes
を用いて指定した型の列のみを抽出することができる。
例:数値のみを残す
import pandas as pd df = pd.read_csv("sample.csv") df = df.select_dtypes(include='number')
例:int, floatのみを残す
import pandas as pd df = pd.read_csv("sample.csv") df = df.select_dtypes(include=['int', 'float'])
例:intのみ取り除く
import pandas as pd df = pd.read_csv("sample.csv") df = df.select_dtypes(exclude=['int'])
手法2. 抽出したい列名を自分で指定
df[colname].dtype
で列の型を取得します。
import pandas as pd df = pd.read_csv("sample.csv") numeric_columns = [colname for colname in df.columns if df[colname].dtype==np.int] df = df[numeric_columns]