この記事は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’とする
実行結果
コード 県 ブロック 郡市 区町村 20231101 ... 20240801 20240901
count 54.000000 54 54 54 54 5.400000e+01 ... 5.400000e+01 5.400000e+01
unique NaN 1 6 45 17 NaN ... NaN NaN
top NaN 愛知県 尾張北東部 知多郡 ― NaN ... NaN NaN
freq NaN 54 13 5 38 NaN ... NaN NaN
mean 23282.851852 NaN NaN NaN NaN 1.385630e+05 ... 1.382908e+05 1.382502e+05
std 112.853956 NaN NaN NaN NaN 3.191711e+05 ... 3.194228e+05 3.194263e+05
min 23100.000000 NaN NaN NaN NaN 9.180000e+02 ... 9.000000e+02 8.960000e+02
25% 23213.250000 NaN NaN NaN NaN 4.227900e+04 ... 4.212350e+04 4.211175e+04
50% 23227.500000 NaN NaN NaN NaN 6.769600e+04 ... 6.754950e+04 6.751050e+04
75% 23356.250000 NaN NaN NaN NaN 1.148482e+05 ... 1.141558e+05 1.141065e+05
max 23563.000000 NaN NaN NaN NaN 2.327950e+06 ... 2.330296e+06 2.330385e+06
[11 rows x 16 columns]
結果の見方
行ラベル | 意味 |
---|---|
count | データの個数 |
unique | 重複しないデータの個数(文字列のみ) |
top | 最も出現頻度の多い値(文字列のみ) |
freq | topの出現回数(文字列のみ) |
mean | 平均値(数値列のみ) |
std | 標準偏差(数値列のみ) |
min, max | 最小値、最大値(数値列のみ) |
25%, 50%, 75% | 第一四分位数、中央値、第三四分位数(数値列のみ) |
文字列の平均値など、計算できない値についてはNaNとなる
コメントを残す