Pandas.Dataframeで統計量を表示する|Python

0 アクセス

この記事はPandas.Dataframeの列の引き算|Pythonのつづき
今回はデータフレームの中央値や平均値などの統計量を表示するdescribe()メソッドを用いる
データフレームの概要を把握するのに便利そう
また、データの抽出にスライスを用いた

はじめに

今回も愛知県の推計人口のデータを用いる
このpandasシリーズが始まってから時間も経っており、より新しいデータも公開されていた
しかし、ここで使用するものはこれまで同じ2024年9月時点のデータとする

この記事は、以下の著作物を改変して利用しています。
あいちの人口(2024年9月1日現在) 愛知県人口動向調査結果 月報、愛知県、クリエイティブ・コモンズ・ライセンス
表示2.1日本(http://creativecommons.org/licenses/by/2.1/jp/

ソースコード

import pandas as pd

# データの読み込みと抽出
df = pd.read_csv('population.csv', encoding='shift_jis')
df = df[(df["国籍区分"]=="a)日外") & (df["性別"]=="a)男女")]
df = df.drop(labels=["国籍区分", "性別", "年齢区分", "内容"], axis=1)
df = pd.concat([df[1:2], df[18:]]) # 県全体(1行目)と名古屋市の区(3~19行目)を除く

# 統計量の表示
print(df.describe(include='all'))

データの抽出

これまで同様、国籍区分、性別の区別のないデータを使用する(5行目)
また、不要な列を削除した(6行目)

さらに、今回は県全体と名古屋市の区のデータを取り除いた
条件分岐等を用いずに、力技ではあるがスライスで行番号を指定する方法をとった

スライス

pandas.DataFrameにスライスを適用するとDataFrameが取り出せる
なお、行番号を指定して1行だけ取り出そうとするとエラーになるので注意(例:df[1])

DataFrameを縦に結合するpandas.concat()メソッド

pandas.concat()メソッドを用いることで、データフレームを縦に結合できる
引数には結合するデータフレームのリストを入れる

Dataframe.describe()メソッド

データフレームの統計量を表示する
引数に何も指定しない場合、数値の列のみが対象となる
全ての列(文字列やbool列)の統計量を表示するには、include = ‘all’とする

実行結果

結果の見方

行ラベル意味
countデータの個数
unique重複しないデータの個数(文字列のみ)
top最も出現頻度の多い値(文字列のみ)
freqtopの出現回数(文字列のみ)
mean平均値(数値列のみ)
std標準偏差(数値列のみ)
min, max最小値、最大値(数値列のみ)
25%, 50%, 75%第一四分位数、中央値、第三四分位数(数値列のみ)

文字列の平均値など、計算できない値についてはNaNとなる

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です