目次
特定の列だけを抽出する
PythonのDataFrameに格納されたデータから、特定の列だけを抽出する方法をご紹介します
データを加工する際に、非常に重要でよく使う機能なのでぜひ覚えてください
事前準備
Seabornというライブラリから、タイタニック号のデータを取得しておきます
import seaborn as sns
df = sns.load_dataset('titanic')
df.head()
特定の1列を抽出する
まずはDataFrameから特定の1列だけを抽出する方法です
指定方法としては2パターンあり、[ ]を使う場合と(.)だけを使う場合があります
また1列を抽出する場合は、DataFrameではなくSeriesで取得されるので注意が必要です
[ ]を使う場合
事前準備で用意したDataFrame(df)から、年齢を示すageのみ取り出してみましょう
変数(df)に続けて[ ]角括弧の中に列名(カラム名)を指定します
df['age']
‘ ‘シングルクォーテーションか、” “ダブルクォーテーションを付けるのを忘れずに
(.)を使う場合
変数(df)に続けて(.)ピリオドを使っても列名を抽出することができます
df.age
Pythonはメソッドをそれぞれ続けて書いていくため、「カラム名」なのか「メソッド・関数」なのかを分けて記述すべきと考えています
コードが複雑にならないために、筆者は[ ]角括弧を利用するようにしています
複数列を指定して抽出する
複数の列を指定して取り出すには[ ]角括弧を2つ並べます
初心者の方にとっては、慣れない指定方法なので注意してください
事前準備で用意したDataFrame(df)から、年齢を示すageと性別を示すsexの2列を取り出してみましょう
df[['age','sex']]
2列のDataFrameでデータを取得することができました
大量に列名を書くのが面倒な場合
取得したい列名が多すぎる場合は、変数にカラム名を並べて、DataFrameから抽出することができます
columnsという変数を作成し、「年齢・性別・運賃・クラス」の4つのカラム名を格納しておきます
そしてdfに対してcolumnsという変数を渡すことで、4列を取得することができます
columns = ['age','sex','fare','class']
df[columns]
数値列だけを取得したい場合などは、別のメソッドと組み合わせてみましょう
x = df.describe().columns
df[x]
describeを使うことで、数値列の統計情報を取得したうえで、そのカラム名を変数に入れます
そして改めてdfに指定することで、数値列のみを取得することができます
【Python】describe|全ての統計情報を一瞬で把握する方法まとめ
今回はDataFrameから特定の列を取り出す方法をご紹介してきました
よく利用する方法のため、自然と使えるように覚えてみてください
列だけではなく行も合わせて指定したい場合、loc / ilocを利用してください
【Python】指定の範囲のデータを抽出する|loc iloc
助かりました。非常に参考になります。