现在位置: 首页 > Pandas 教程 > 正文

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("n按 value 降序排列后的前 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() 了解数据的整体情况。这个"查看数据四部曲"是每个数据分析师都应该掌握的基本技能。

Pandas 常用函数 Pandas 常用函数