为何Pandas DataFrame长度大于CSV文件行数?
CSV行数与Pandas读取后DataFrame长度不一致的原因分析
问题背景
我从Kaggle下载了TripAdvisor 2023年评论数据集,本地保存的CSV文件显示有147577行,但用Pandas读取后生成的DataFrame长度为147581。读取代码如下:
import pandas as pd df = pd.read_csv(r"C:\Users\marcel\Documents\New_Delhi_reviews.csv") print(len(df))
输出结果为147581,想知道造成该差异的原因及是否存在理解误区。
可能的原因
- 统计逻辑差异:你看到的CSV行数是文本层面按换行符的计数,而
len(df)统计的是解析后的数据记录数。如果CSV里存在未用引号包裹的多行内容(比如评论里的换行),Pandas会把这些换行误判为新的数据行,导致DataFrame行数变多。 - 空行处理差异:部分工具统计CSV行数时会忽略末尾空行或格式无效的行,但Pandas默认会读取这些行(只要符合CSV基础格式),计入DataFrame的行数统计。
- 文件异常问题:下载过程中文件若损坏,或者编码不匹配,可能导致Pandas解析时出现偏差,误将部分内容识别为新的数据行。
理解误区说明
你可能默认CSV的文本行数和DataFrame的数据记录数完全等价,但两者统计逻辑不同:CSV的“行”是文本换行分隔的单元,而DataFrame的“行”是经过解析后的结构化数据记录。当存在多行字段、空行或解析异常时,两者计数就会出现偏差。
内容的提问来源于stack exchange,提问作者Marcel
相关产品推荐
相关产品推荐

