📖

データの概要を確認する python: pandasの基礎知識

2023/06/08に公開

データの概要を確認するには

データ分析では、対象となるデータの概要を調べ、傾向や外れ値などを確認することが重要です。本記事では、DataFrameの統計量を確認する簡単な方法を紹介します。

以下のコードを扱ってみます。

import numpy as np
import pandas as pd

df = pd.DataFrame(
    [
        ["Alice", "国語", 87],
        ["Alice", "数学", np.nan],
        ["Bob", "国語", 65],
        ["Bob", "数学", 92],
    ],
    columns=["Name", "Subject", "Point"],
)
df

DataFrame型の変数dfに、生徒(Name)と教科(Subject)ごとのテストの点数(Point)が入っています。

このデータの列Pointの下記の項目を確認したい場合、どのように実行するのか。
期待する結果は以下です。

解説

では、解説していきます。

pandasでは、describe()で簡単にいろいろな統計量を確認できます。
出力項目のcountは欠損値以外の個数を、meanとstdは平均と標準偏差を、minとmaxは最小値と最大値を、25%と50%と75%は第1四分位数と第2四分位数と第3四分位数を表します。

よって

df.describe()

を追加することで、期待する結果が出力されます。

おまけに、もう一点、、

列ごとに昇順/降順を変えて確認するには

データ分析では、「価格の高い順で行を並べ替える」「日付の早い順で行を並べ替える」など、特定の列でデータを並べ替えたいことがよくあります。ここで2つの列を基準にして並べ替える方法を記載します。

以下のコードを扱います。

import numpy as np
import pandas as pd

df = pd.DataFrame(
    [
        ["Alice", "国語", 87],
        ["Alice", "数学", np.nan],
        ["Bob", "国語", 65],
        ["Bob", "数学", 92],
    ],
    columns=["Name", "Subject", "Point"],
)
df

このリストを、
変数dfに対し、第1キーを列Nameで昇順に、第2キーを列Pointで降順にソートして表示したい場合はどうするか。
以下は期待する結果です。

ではやっていきましょう。
NameとPointでソートします。Nameは昇順、Pointは降順とします。

指定した列を基準にして並び替えるには、sort_values()を使います。デフォルトでは昇順で並び替えますが、引数ascendingを使って昇順/降順をブール値で指定可能です(昇順がTrue、降順がFalse)。今回のように列によって昇順/降順が異なる場合は、各列の設定をブール値のリストで渡します。
なお、昇順/降順に関わらず、欠損値は最後に並びます。

df.sort_values(["Name", "Point"], ascending=[True, False])

そうすることで、期待る結果が返ってきます。

以上がデータの概要の確認の方法でした。
他にも確認方法はあると思いますが、この方法が一番よく使用すると思ったので書きました。

Discussion