トップページ -> データの扱い -> データの取り扱い -> 集計集約(グループごとの数え上げ,最大,最小,平均,中央値,和)(Python, pandas, pandasql, seaborn を使用)
[サイトマップへ], [サイト内検索へ]

集計集約(グループごとの数え上げ,最大,最小,平均,中央値,和)(Python, pandas, pandasql, seaborn を使用)


前準備

Python のインストール,pip と setuptools の更新,Python 開発環境のインストール

Windows の場合

  1. Python のインストール

    Python の URL: http://www.python.org/

    インストール手順の詳細は: 別ページで説明している.

  2. pip と setuptools の更新Python 開発環境(JupyterLab, spyder)のインストール

    コマンドプロンプトを管理者として実行し,次のコマンドを実行.

    python -m pip install -U pip setuptools
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    

Ubuntu の場合

システム Python を使用(インストール操作は不要)

  1. pip と setuptools の更新Python 開発環境(JupyterLab, spyder)のインストール

    次のコマンドを実行.

    sudo apt -yV install python3-dev python3-pip python3-setuptools
    sudo apt -yV install jupyter-qtconsole jupyter-notebook python3-jupyter-client python3-jupyter-console python3-spyder spyder3
    

Python 用 numpy, pandas, pandasql, seaborn, matplotlib のインストール

Windows の場合

python -m pip install -U numpy pandas pandasql seaborn matplotlib

Ubuntu の場合

sudo apt -yV install python3-numpy python3-pandas python3-seaborn python3-matplotlib
sudo python3 -m pip install -U pandasql

irisデータセット, titanic データセットの読み込み

Python プログラムを動かして,結果を見たい.

Jupyter Qt ConsolespyderPyCharmPyScripter が便利である. Windows では,スタートメニューの「IDLE (Python ...)」も便利である.

  1. iris, titanic データセットの読み込み
    import pandas as pd
    import seaborn as sns
    
    iris = sns.load_dataset('iris')
    titanic = sns.load_dataset('titanic')
    
    

    [image]
  2. データの確認
    print(iris.head())
    print(titanic.head())
    

    [image]

グループごとの数え上げ

列を1つ選ぶことで、グループを作り、各グループの要素数を求める

pandas の groupby を使う場合

import pandas as pd
import seaborn as sns

iris = sns.load_dataset('iris')
titanic = sns.load_dataset('titanic')

print( iris.groupby('species').size() )
print( titanic.groupby('embark_town').size() )

[image]

pandasql と SQL を使う場合

import pandas as pd
import seaborn as sns
from pandasql import sqldf

iris = sns.load_dataset('iris')
titanic = sns.load_dataset('titanic')

pysqldf = lambda q: sqldf(q, globals())
print( pysqldf("SELECT species, count(*) FROM iris group by species;") );
print( pysqldf("SELECT embark_town, count(*) FROM titanic group by embark_town;") );

[image]

最大、最小、平均、中央値、和

列を1つ選ぶことで、グループを作り、各グループの最大、最小、平均、中央値、和を求める

pandas の groupby を使う場合

import pandas as pd
import seaborn as sns

iris = sns.load_dataset('iris')
titanic = sns.load_dataset('titanic')

print( iris.groupby('species').max() )
print( titanic.groupby('embark_town').max() )

print( iris.groupby('species').min() )
print( titanic.groupby('embark_town').min() )

print( iris.groupby('species').mean() )
print( titanic.groupby('embark_town').mean() )

print( iris.groupby('species').median() )
print( titanic.groupby('embark_town').median() )

print( iris.groupby('species').sum() )
print( titanic.groupby('embark_town').sum() )

[image]

[image]

pandasql と SQL を使う場合

iris データセットで,各グループの最大値を求める場合のみを載せる.

import pandas as pd
import seaborn as sns
from pandasql import sqldf

iris = sns.load_dataset('iris')
titanic = sns.load_dataset('titanic')

pysqldf = lambda q: sqldf(q, globals())
print( pysqldf("SELECT species, max(sepal_length), max(sepal_width), max(petal_length), max(petal_width) FROM iris group by species;") );

[image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]