Pandas中nrows参数与df.head()方法的区别是什么?
区别与适用场景解析
核心差异
执行时机与内存占用
pd.read_csv("file.csv", nrows=25):在读取文件阶段就只加载前25行到内存,剩余内容完全不处理。如果CSV文件体积超大(比如数GB级),这种方法能避免把全量数据塞进内存,既节省资源又提升速度。df.head(25):必须先把整个CSV文件完整加载到内存生成DataFrame,再从中截取前25行。面对大文件时,这一步可能触发内存不足报错,或耗费大量加载时间。
操作阶段不同
两者最终都返回含前25行的DataFrame,但nrows是在数据读取环节做限制,head()是在数据已全量加载完成后做截取。
为什么存在两种方法?
这是为了适配不同的使用场景:
- 若只是快速预览文件结构、数据格式,无需处理全量数据,用
nrows=25更高效,尤其适合大文件场景。 - 若已经加载了全量数据到DataFrame,后续需要多次查看前几行(比如数据清洗后再次确认),直接用
df.head(25)更方便,无需重复读取文件。
举个直观例子:
- 大文件预览:
pd.read_csv("large_data.csv", nrows=25)直接获取前25行,内存压力极小。 - 已加载数据查看:
df = pd.read_csv("small_data.csv")之后,df.head(25)快速截取,无需重新读文件。
内容的提问来源于stack exchange,提问作者Abhay Banugariya
相关产品推荐
相关产品推荐

