Pandas df.head() 関数

Pandas 常用函数Pandas よく使う関数


head()はPandas DataFrameとSeriesの中で最もよく使われる関数の一つで、データセットの先頭部分をすばやく確認するために使用されます。先頭のn行データを返し、データセット全体を読み込まなくても、データの基本構造と内容を把握できます。

この関数はデータ分析作業での使用頻度が非常に高く、特に大規模なデータセットを処理する場合は、通常まずhead()を使用してデータの先頭数行を確認し、データ構造が期待どおりかを確認してから、さらに分析と処理を進めます。


基本構文とパラメータ

head()はDataFrameとSeriesのメンバー関数で、ドット演算子.を使用して呼び出します。必須パラメータを渡す必要はありませんが、返す行数を指定するオプションパラメータを受け取ることができます。

構文形式

DataFrame.head(n=5)
Series.head(n=5)

パラメータの説明

パラメータ 型 必須かどうか 説明 デフォルト値
n int 任意 先頭のn行データを返します。nが総行数より大きい場合は、すべてのデータを返します。 5

戻り値の説明

  • 戻り値の型: 呼び出し元がDataFrameの場合はDataFrameを返し、呼び出し元がSeriesの場合はSeriesを返します。
  • 返す行数: 最大n行を返します。データの行数がn未満の場合は、すべてのデータを返します。

例

一連の例を通して、head()の使い方を完全にマスターしましょう。

例1:基本的な使い方 - DataFrameの先頭数行を確認する

まず簡単なDataFrameを作成し、head()を使用して先頭数行のデータを表示します。

例

import pandas as pd

# サンプルDataFrameを作成(学生の成績データを含む)
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry', 'Iris', 'Jack'],
    'age': [18, 19, 17, 18, 20, 19, 18, 17, 19, 18],
    'score': [85, 92, 78, 90, 88, 95, 82, 76, 89, 91],
    'grade': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'C', 'B', 'A']
}
df = pd.DataFrame(data)

# デフォルトで先頭5行を返す
print("デフォルト先頭5行:")
print(df.head())

# 先頭3行を返すよう指定
print("n先頭3行:")
print(df.head(3))

# 先頭7行を返す
print("n先頭7行:")
print(df.head(7))

実行結果:

默认前 5 行:
      name  age  score grade
0    Alice   18     85     A
1      Bob   19     92     A
2  Charlie   17     78     B
3    David   18     90     A
4      Eve   20     88     B

前 3 行:
      name  age  score grade
0    Alice   18     85     A
1      Bob   19     92     A
2  Charlie   17     78     B

前 7 行:
      name  age  score grade grade
0    Alice   18     85     A
1      Bob   19     92     A
2  Charlie   17     78     B
3    David   18     90     A
4      Eve   20     88     B
5    Frank   19     95     A
6    Grace   18     82     B

コード解説:

  1. 10行の学生データを含むDataFrameを作成しました。
  2. df.head()パラメータなしの場合は、デフォルトで先頭5行を返します。これが最も一般的な使い方です。
  3. df.head(3)先頭3行を返します。必要に応じて表示する行数を調整できます。
  4. 指定したn値がデータの総行数より大きい場合は、すべてのデータを返します。エラーにはなりません。

例2:Seriesの先頭数行を確認する

head()DataFrameだけでなく、Seriesオブジェクトにも同様に適用できます。

例

import pandas as pd

# 一連の数値を含むSeriesを作成
s = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

# Seriesの先頭3要素を表示
print("先頭3要素:")
print(s.head(3))

# インデックス付きSeriesを作成
s2 = pd.Series([100, 200, 300, 400, 500], index=['a', 'b', 'c', 'd', 'e'])
print("nインデックス付きSeriesの先頭2要素:")
print(s2.head(2))

実行結果:

前 3 个元素:
0    10
1    20
2    30
dtype: int64

带索引 Series 的前 2 个元素:
a    100
b    200
dtype: int64

コード解説:

  • Seriesもhead()メソッドをサポートしており、先頭のn個の要素を返します。
  • カスタムインデックスのSeriesでもhead()を正常に使用でき、元のインデックスが保持されます。

例3:他の関数と組み合わせて使用する

head()は、データ探索や分析のために他のDataFrame関数と組み合わせてよく使用されます。

例

import pandas as pd
import numpy as np

# より大きなDataFrameを作成
np.random.seed(42)  # 乱数シードを設定し、結果を再現可能にする
df = pd.DataFrame({
    'date': pd.date_range('2024-01-01', periods=100),
    'value': np.random.randn(100).round(2),
    'category': np.random.choice(['A', 'B', 'C'], 100)
})

# データ型情報を表示
print("データ型情報:")
print(df.dtypes)
print()

# 先頭10行のデータを表示
print("先頭10行データ:")
print(df.head(10))

# 並べ替えてから先頭数行を表示
df_sorted = df.sort_values('value', ascending=False)
print("nvalue降順で並べ替えた後の先頭5行:")
print(df_sorted.head())

# 先頭数行の統計情報を表示
print("n先頭5行の統計情報:")
print(df.head().describe())

実行結果:

数据类型信息:
date    datetime64[ns]
value            float64
category          object
dtype: object

前 10 行数据:
        date  value category
0 2024-01-01   0.34        A
1 2024-01-02  -0.23        B
2 2024-01-03   0.54        C
3 2024-01-04  -1.58        B
4 2024-01-05  -0.29       后几行
...

按 value 降序排列后的前 5 行:
         date  value category
72 2024-03-13   2.87        C
55 2024-02-25   2.32        A
31 2024-02-01   2.21        B
64 2024-03-05   1.71        C
84 2024-03-25   1.55        A

前 5 行的统计信息:
         age     score
count   5.0    5.000
mean   18.0   87.200
std     1.0    5.403
min    17.0   78.000
50%   18.0   88.000
max   20.0   95.000

コード解説:

  1. head()はsort_values()と組み合わせて、並べ替えてから先頭数行を確認できます。
  2. head()返されるものは依然としてDataFrameなので、他のDataFrameメソッドを引き続き呼び出すことができます。
  3. describe()は、head()返されたデータに対して統計集計を行うことができます。

注意事項

  • head()は元のDataFrameやSeriesを変更しません。新しいオブジェクトを返します。
  • nが0以下の場合は、空のDataFrameまたは空のSeriesを返します。
  • 大規模なデータセットの場合は、まずhead()を使用して構造を確認するのが良い習慣です。
  • head()返されるデータは元のインデックス値を保持しており、再番号付けはされません。

ヒント: Jupyter NotebookまたはJupyterLab環境では、DataFrameの変数名を直接入力して実行すると、デフォルトでhead()の結果が表示されます。これにより、データ探索作業が大幅に便利になります。


まとめ

head()はPandasの中で最も基礎的で実用的なデータ確認関数の一つです。データセットの先頭部分をすばやくプレビューし、データ構造、列名、データ型などの重要な情報を把握するのに役立ちます。

実際のデータ分析業務では、通常次のように行います。まずhead()を使用してデータの基本構造を確認し、次にtail()を使用してデータの末尾を確認し、さらにinfo()とdescribe()を使用してデータの全体像を把握します。この「データ確認の4ステップ」は、すべてのデータアナリストが習得すべき基本スキルです。

Pandas 常用函数Pandas よく使う関数

その他の拡張