pandasでは、DataFrameの基本情報を確認するための機能が多数用意されています。たとえば、次のようなものです。
- DataFrameの先頭数行を表示(
head()
) - DataFrameの末尾数行を表示(
tail()
) - DataFrameの形状(行数と列数)(
shape
) - 列名一覧 (
columns
) - 各列の型 (
dtypes
) - 基本統計量 (
describe()
)
import pandas as pd
# データの読み込み
df = pd.read_csv("dataset/physical_measurement.csv")
# 表示
df
Name | Height | Weight | |
---|---|---|---|
0 | 佐藤 | 172 | 53 |
1 | 田中 | 160 | 50 |
2 | 鈴木 | 165 | 58 |
3 | 高橋 | 170 | 59 |
4 | 伊藤 | 166 | 54 |
5 | 山本 | 156 | 51 |
6 | 渡辺 | 163 | 58 |
7 | 中村 | 176 | 65 |
8 | 小林 | 167 | 70 |
9 | 加藤 | 164 | 54 |
まずはデータを数行眺めてみて、何という名前の列が、どのような形式で格納されているかを大まかに確認してみましょう。
head()
を使うと、DataFrameの先頭5行だけを表示できます。
df.head()
Name | Height | Weight | |
---|---|---|---|
0 | 佐藤 | 172 | 53 |
1 | 田中 | 160 | 50 |
2 | 鈴木 | 165 | 58 |
3 | 高橋 | 170 | 59 |
4 | 伊藤 | 166 | 54 |
先頭ではなく末尾を確認する時は、tail()
を使って末尾5行を表示できます。
df.tail()
Name | Height | Weight | |
---|---|---|---|
5 | 山本 | 156 | 51 |
6 | 渡辺 | 163 | 58 |
7 | 中村 | 176 | 65 |
8 | 小林 | 167 | 70 |
9 | 加藤 | 164 | 54 |
データを確認したところ、列Name
には文字列が、列Height
と列Weight
には数値が格納されているように見えます。
dtypes
を使って各列の型を確認しましょう。列Height
と列Weight
はint64型でデータが格納されていることがわかります。列Name
のobject
は、文字列または複数の型が混在することを意味しています。
df.dtypes
Name object
Height int64
Weight int64
dtype: object
次に、DataFrameの行数と列数を確認しましょう。shape
を使うと、行数と列数を確認できます。実行すると、今回読み込んだファイルのデータは10行3列であることがわかります。
# DataFrameの形状(行数と列数)を確認
df.shape
(10, 3)
columns
を使うと、列名一覧を取得できます。今回は3列しかないですが、列数が多いデータを扱う時は便利な機能です。
# 列名一覧の確認
df.columns
Index(['Name', 'Height', 'Weight'], dtype='object')
describe()
を使うと、各列の基本統計量(平均値、標準偏差、最大値、最小値、四分位数など)を確認できます。データ全体のおおまかな分布を把握する際に便利です。
実際に実行してみましょう。デフォルトでは数値が格納された列だけが対象となるため、ここでは列Height
と列Weight
の結果だけが表示されています。mean
(平均値)、min
(最小値)、max
(最大値)の項目を確認すると、それぞれ次のことがわかります。
- 身長の平均値は165.9cm、最小値は156cm、最大値は176cm
- 体重の平均値は57.2kg、最小値は50kg、最大値は70kg
df.describe()
Height | Weight | |
---|---|---|
count | 10.000000 | 10.000000 |
mean | 165.900000 | 57.200000 |
std | 5.801341 | 6.303438 |
min | 156.000000 | 50.000000 |
25% | 163.250000 | 53.250000 |
50% | 165.500000 | 56.000000 |
75% | 169.250000 | 58.750000 |
max | 176.000000 | 70.000000 |
コメント