Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで特定のデータ型の列を選択する方法【pandas select_dtypes()】


pandasのDataFrameから特定のデータ型(dtype)を持つ列だけを取り出したい場合は、select_dtypes()メソッドが便利です。引数includeに取得したいデータ型を指定すると、該当する列だけを簡単に抽出できます。

サンプルDataFrameの作成

まずは、文字列型(object)の「Student」列と整数型(int64)の「Roll Number」列を持つ、2列のDataFrameを作成します。

import pandas as pd

dataFrame = pd.DataFrame(
    {
        "Student": ['Jack', 'Robin', 'Ted', 'Marc', 'Scarlett', 'Kat', 'John'],
        "Roll Number": [5, 10, 3, 8, 2, 9, 6]
    }
)

select_dtypes()で特定のデータ型の列を選択する

includeパラメータにデータ型のリストを渡すことで、指定した型の列のみを選択できます。ここでは、object型の列とint64型の列をそれぞれ別の変数に格納します。

# object型(文字列)の列を選択
column1 = dataFrame.select_dtypes(include=['object']).columns

# int64型(整数)の列を選択
column2 = dataFrame.select_dtypes(include=['int64']).columns

完全なコード例

以下に、ここまでの処理をまとめた実行可能なコード全体を示します。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    {
        "Student": ['Jack', 'Robin', 'Ted', 'Marc', 'Scarlett', 'Kat', 'John'],
        "Roll Number": [5, 10, 3, 8, 2, 9, 6]
    }
)

print("DataFrame:\n", dataFrame)

# DataFrame全体の情報を表示
print("\nDataFrame全体の情報:")
print(dataFrame.info())

# 特定のデータ型の列を選択
column1 = dataFrame.select_dtypes(include=['object']).columns
column2 = dataFrame.select_dtypes(include=['int64']).columns

print("object型の列 =", column1)
print("int64型の列 =", column2)

実行結果

このコードを実行すると、次のような出力が得られます。

DataFrame:
   Roll Number   Student
0            5      Jack
1           10     Robin
2            3       Ted
3            8      Marc
4            2  Scarlett
5            9       Kat
6            6      John

DataFrame全体の情報:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 2 columns):
 #   Column       Non-Null Count  Dtype 
---  ------       --------------  ----- 
 0   Student      7 non-null      object
 1   Roll Number  7 non-null      int64 
dtypes: int64(1), object(1)
memory usage: 240.0+ bytes
None
object型の列 = Index(['Student'], dtype='object')
int64型の列 = Index(['Roll Number'], dtype='object')

補足:excludeパラメータとの併用

select_dtypes()には、指定したデータ型を除外するためのexcludeパラメータも用意されています。たとえば次のように書くと、数値型以外の列(この場合はobject型)だけを取得できます。

# 数値型を除外した列を選択
non_numeric_cols = dataFrame.select_dtypes(exclude=['number']).columns
print(non_numeric_cols)  # Index(['Student'], dtype='object')

また、include=['number']と指定すれば、int64やfloat64などすべての数値型の列をまとめて選択できます。欠損値の補完やスケーリングなどの前処理では、数値列と文字列列を分けて扱う場面が多いため、select_dtypes()は覚えておくと非常に便利なメソッドです。


  1. Python・PandasのDataFrameから複数の列を選択する方法

    Pandasでは、CSVファイルから読み込んだDataFrameに対して、二重の角括弧 [[ ]] を使うことで、複数の列を簡単に選択できます。本記事では、具体的な手順とサンプルコードを交えて解説します。 前提:サンプルデータについて ここでは、Microsoft Excelで開いた以下のような内容のCSVファイル(SalesData.csv)を例にします。このデータには「Car(車名)」「Reg_Price(登録価格)」「Units(台数)」の3つの列が含まれています。 ステップ1:CSVファイルをPandas DataFrameに読み込む まず、read_csv() メソッドを使って、C

  2. PythonでCSVファイルから特定の列を抽出する方法(Pandas活用)

    PythonでCSVファイルから特定の列だけを抽出してリストとして扱いたい場合、Pandasのread_csv()メソッドを使うと簡単に実現できます。usecols引数に列名のリストを指定することで、必要な列のみを効率的に読み込むことが可能です。 手順 抽出したい列名をリストとして作成します。 read_csv()メソッドを使って、CSVファイルをデータフレーム(DataFrame)として読み込みます。 抽出したデータを表示します。 plot()メソッドを使ってデータフレームをグラフ化します。 図を表示するためにshow()メソッドを呼び出します。 コード例 import pandas a