( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】DataFrameで特定の列を抽出する方法

特定の列だけを抽出する

PythonのDataFrameに格納されたデータから、特定の列だけを抽出する方法をご紹介します

データを加工する際に、非常に重要でよく使う機能なのでぜひ覚えてください

特定の列を取り出す例

事前準備

Seabornというライブラリから、タイタニック号のデータを取得しておきます

import seaborn as sns
df = sns.load_dataset('titanic')
df.head()
sns.load_dataset('titanic')
【Python】初心者向けタイタニック号のサンプルデータをご紹介します

特定の1列を抽出する

まずはDataFrameから特定の1列だけを抽出する方法です

指定方法としては2パターンあり、[ ]を使う場合と(.)だけを使う場合があります

また1列を抽出する場合は、DataFrameではなくSeriesで取得されるので注意が必要です

[ ]を使う場合

事前準備で用意したDataFrame(df)から、年齢を示すageのみ取り出してみましょう

変数(df)に続けて[ ]角括弧の中に列名(カラム名)を指定します

df['age']
df['age']

‘ ‘シングルクォーテーションか、” “ダブルクォーテーションを付けるのを忘れずに

(.)を使う場合

変数(df)に続けて(.)ピリオドを使っても列名を抽出することができます

df.age
df['age']
注意

Pythonはメソッドをそれぞれ続けて書いていくため、「カラム名」なのか「メソッド・関数」なのかを分けて記述すべきと考えています

コードが複雑にならないために、筆者は[ ]角括弧を利用するようにしています

複数列を指定して抽出する

複数の列を指定して取り出すには[ ]角括弧を2つ並べます

初心者の方にとっては、慣れない指定方法なので注意してください

事前準備で用意したDataFrame(df)から、年齢を示すageと性別を示すsexの2列を取り出してみましょう

df[['age','sex']]
df[['age','sex']]

2列のDataFrameでデータを取得することができました

大量に列名を書くのが面倒な場合

取得したい列名が多すぎる場合は、変数にカラム名を並べて、DataFrameから抽出することができます

columnsという変数を作成し、「年齢・性別・運賃・クラス」の4つのカラム名を格納しておきます

そしてdfに対してcolumnsという変数を渡すことで、4列を取得することができます

columns = ['age','sex','fare','class']
df[columns]
columns = ['age','sex','fare','class']
df[columns]

数値列だけを取得したい場合などは、別のメソッドと組み合わせてみましょう

x = df.describe().columns
df[x]
x = df.describe().columns
df[x]

describeを使うことで、数値列の統計情報を取得したうえで、そのカラム名を変数に入れます

そして改めてdfに指定することで、数値列のみを取得することができます

【Python】describe|全ての統計情報を一瞬で把握する方法

まとめ

今回はDataFrameから特定の列を取り出す方法をご紹介してきました

よく利用する方法のため、自然と使えるように覚えてみてください

列だけではなくも合わせて指定したい場合、loc / ilocを利用してください

【Python】指定の範囲のデータを抽出する|loc iloc
お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。