登录
首页 >  文章 >  python教程

Pandas查看前几行:head()与tail()使用方法

时间:2026-05-06 12:47:43 150浏览 收藏

head()和tail()是Pandas中最轻量、高效的数据快览利器,无需加载全量数据即可秒级预览前/后若干行,是数据读入、清洗和调试时不可替代的“第一眼检查工具”;但默认5行常显不足,需灵活调参(如head(10)查字段对齐、tail(3)揪异常尾行、head(0)极速获取schema),同时警惕空DataFrame误判、索引乱序误导、链式调用报错等实战陷阱——真正用好它们,能帮你避开80%因类型推断错误或结构误读引发的后续坑。

Pandas怎么查看前几行_head()与tail()快速预览数据表结构

直接用 head()tail() 看数据,别绕弯

这两个方法就是 Pandas 里最轻量、最常用的数据快览入口。它们不加载全表、不触发计算、不改原数据,纯读取前/后几行,适合刚读入 pd.read_csv() 或清洗中途快速确认结构。

默认显示 5 行,但多数时候你得主动调参数——因为 5 行经常不够看列名对齐、空值分布或类型异常:

  • df.head(10):想扫一眼字段是否错位、长文本截断情况,10 行比默认更稳
  • df.tail(3):检查最后几条是不是意外混入的汇总行、分隔符、空行
  • df.head(0):冷知识,能只返回列名和 dtypes,相当于“最小化 schema 预览”

为什么 head() 有时返回空或报错?常见陷阱在这儿

不是函数有问题,是数据状态或调用姿势不对:

  • 空 DataFrame:df.head() 返回空 DataFrame,但列名和 dtype 还在——容易误判为“没读进来”,其实只是源文件真为空
  • 索引乱序或含重复值:某些操作(如多次 concat 后未重置索引)会导致 head() 返回“看起来不连贯”的行,实际是索引跳变,不是数据丢失
  • 链式调用中断:写成 pd.read_csv("x.csv").head().info() 会报错,因为 head() 返回的是 DataFrame,而 info() 不支持链式调用;应拆成两行或用 pipe()

head()tail() 的性能几乎为零,但要注意这个边界

它们底层是切片操作(df.iloc[:n] / df.iloc[-n:]),不扫描全量数据,所以哪怕 DataFrame 有千万行,head(10) 也秒出。但有两个例外:

  • 如果 DataFrame 是 lazy 加载的(比如用 dask.dataframe 或某些数据库连接器封装的 df),head() 可能触发一次小查询,但依然远快于全量拉取
  • 如果用了 query()sort_values() 等惰性操作还没 compute(),那 head() 会强制执行上游——这时慢的不是 head(),而是前面那个没显式触发的计算

别只盯着行数,顺手加个 print(df.dtypes)df.info()

head() 只给你数据样例,看不出字段类型是否被误推(比如电话号变成 int64、时间字段是 object 而非 datetime64)。真实排查时,这三步常一起用:

  • df.head(3):看值长什么样
  • print(df.dtypes):看 Pandas 怎么猜的类型
  • df.describe(include='all'):补看每列的非空数、唯一值、top 值(尤其对 object 列)

类型错位往往在 head() 里看不出异样,等 merge 或 groupby 时报 TypeError: unhashable type 才发现——那时已经多走了三步路

本篇关于《Pandas查看前几行:head()与tail()使用方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>