pandas データフレームの集約・抽出・集計・並び替えのコマンド集


pandasでデータフレームを扱う際に、よく使うコマンドを整理しました。

基礎統計量の確認

 <データフレーム名>.describe()

カラム内のデータ数を数える

<データフレーム名>["<カラム名>"].value_counts()

列データのユニークな要素数を数える

<データフレーム名>["<カラム名>"].nunique()

groupby関数による集約

<データフレーム名>.groupby("<カラム名1">)["<カラム名2>"].value_counts()

特定の要素ごとの平均値、合計値、中央値を出す

<データフレーム名>.groupby("<カラム名">).mean()
<データフレーム名>.groupby("<カラム名">).sum()
<データフレーム名>.groupby("<カラム名">).median()

groupby関数で集約に用いたカラムをインデックスにしない場合

groupby("<カラム名>", as_index=False)

groupby関数で2以上の列を指定する場合

groupby(["<カラム名1>","<カラム名2>"])

件数を集計する場合(クロス集計)

 pd.crosstab(<データフレーム名>["<カラム名1>"], <データフレーム名>["<カラム名2>"])

件数を集計する場合(クロス集計、行方向の合計値が全体で1になるように正規化したい場合)

 pd.crosstab(<データフレーム名>["<カラム名1>"], <データフレーム名>["<カラム名2>"], normalize = "index")

条件に該当したデータ抽出

<データフレーム名>[<データフレーム名>["<カラム名>"] == "値"]
または
<データフレーム名>.query("<カラム名> == '値'")

データ並び替え

# 昇順(デフォルト)
<データフレーム名>.sort_values("<カラム名>")
# 降順
<データフレーム名>.sort_values("<カラム名>", ascending=False)

カラム名変更

<データフレーム名>.rename(columns={"<カラム名>":"<変更後カラム名>"})