Pandas df.head() 関数
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()を使用して先頭数行のデータを表示します。
例
# サンプル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
コード解説:
- 10行の学生データを含むDataFrameを作成しました。
df.head()パラメータなしの場合は、デフォルトで先頭5行を返します。これが最も一般的な使い方です。df.head(3)先頭3行を返します。必要に応じて表示する行数を調整できます。- 指定したn値がデータの総行数より大きい場合は、すべてのデータを返します。エラーにはなりません。
例2:Seriesの先頭数行を確認する
head()DataFrameだけでなく、Seriesオブジェクトにも同様に適用できます。
例
# 一連の数値を含む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 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
コード解説:
head()はsort_values()と組み合わせて、並べ替えてから先頭数行を確認できます。head()返されるものは依然としてDataFrameなので、他のDataFrameメソッドを引き続き呼び出すことができます。describe()は、head()返されたデータに対して統計集計を行うことができます。
注意事項
head()は元のDataFrameやSeriesを変更しません。新しいオブジェクトを返します。- nが0以下の場合は、空のDataFrameまたは空のSeriesを返します。
- 大規模なデータセットの場合は、まず
head()を使用して構造を確認するのが良い習慣です。 head()返されるデータは元のインデックス値を保持しており、再番号付けはされません。
ヒント: Jupyter NotebookまたはJupyterLab環境では、DataFrameの変数名を直接入力して実行すると、デフォルトで
head()の結果が表示されます。これにより、データ探索作業が大幅に便利になります。
まとめ
head()はPandasの中で最も基礎的で実用的なデータ確認関数の一つです。データセットの先頭部分をすばやくプレビューし、データ構造、列名、データ型などの重要な情報を把握するのに役立ちます。
実際のデータ分析業務では、通常次のように行います。まずhead()を使用してデータの基本構造を確認し、次にtail()を使用してデータの末尾を確認し、さらにinfo()とdescribe()を使用してデータの全体像を把握します。この「データ確認の4ステップ」は、すべてのデータアナリストが習得すべき基本スキルです。
Pandas よく使う関数