【DataFrame】機械学習で必要なpandasの操作をまとめる

Posted: , Category: pandas

機械学習やデータ分析をする際で、pandasは息を吸うように利用することになります。

pandasではDataFrameやSeries等のデータ構造があり、これらをうまく操作しながら、データの分析を進めることになります。今回は、pandasを扱う中で意外と使うような操作について、まとめます。

pandasのDataFrameとSeriesの基本的な構造

pandasでは大きくDataFrameとSeriesの2つの構造があります。DataFrameは、列と行の情報をもつテーブル構造のデータで、Seriesは、1列もしくは一行の情報を持つようなデータとなります。

DataFrameとSeriesの違いを図形にわかりやすく可視化すると次にようになります。

この記事では、主にDataFrameを便利に操作するような内容をまとめます。

またDataFrameですが、DatFrameは次にようなindex、columns, values の3つの要素から構成されています。これを図にするとこのようになっています。

indexは行名、columnsは列名、valuesは表の値に対応しています。

DataFrameを作成・初期化する

DataFrameは、主に、リスト等からDataFrameを直接作成する方法とcsvからデータを読み込む方法があります。

ここでは、リスト等のデータからDataFrameを直接作成する方法について紹介します。

データからDataFrameを作成する

データからDataFrameを作成する場合は、pd.DataFrameメソッドに、データの入ったリストを第一引数に与えることで可能となります。コードは次のようになります。

import pandas as pd
import numpy as np

columns = np.array(["身長", "体重", "性別", "年齢", "住所"])
values = np.array([
    [178, 68, "男", 27, "東京"],
    [153, 45, "女", 76, "神奈川"],
    [181, 89, "男", 34, "東京"],
    [172, 57, "男", 19, "千葉"],
    [167, 72, "男", 54, "広島"],
    [161, 57, "女", 43, "群馬"],
    [168, 61, "男", 34, "神奈川"],
    [151, 47, "女", 71, "埼玉"]
])

pd.DataFrame(values, columns=columns)

pd.DataFrameに与えるリストは、(行の数, 列の数)のサイズのリストを与えると初期化できます。

DataFrameの要約値を得る

データの系列が多い時は、DataFrameの要約値を見ることで、データの概要を知ることができます。

データのざっくりとした分布等を確認しながら、統計モデルを考えることをよくEDA(exploration data analysis)と呼びます。

DataFrameのカラム名やnull値の個数を確認する

df.info()を用いることで、データの基本的なカラム名やnullのデータ数などを確認することができます。

df.info()

結果はこのようになります。

DataFrameの最頻値や最大値などを得る

df.describe()

DataFrameを結合する

dataframeを結合する場合、concat()または、mergeが利用できます。

また結合する場合は、列を増やす方向につなげるのか、行を増やす方向につなげる方法もあるので、適した方を選ぶ必要性があります。

DataFrameのカラム名で検索

多変量解析で多数のカラムを扱う際に、対象のDataFrameから該当するカラムを検索するには、filter()を使います。Index名で検索する場合は、axis=0を指定しています。列名を指定する場合は、axis=1を指定します。

df.filter(regex="a")
df.filter(regex="a", axis=1) # 系列名で検索
df.filter(regex="a", axis=0) # Index名で検索 

【広告】
統計学的にあなたの悩みを解決します。
仕事やプライベートでお悩みの方は、ベテラン占い師 蓮若菜にご相談ください。

機械学習と情報技術