Python Pandas统计两CSV文件行数并求和报错求助
解决Pandas统计两个CSV行数并求和的问题
我来帮你搞定这个问题!在Pandas里统计CSV行数其实没那么复杂,先说说你可能踩的坑,再给你正确的实现步骤:
常见错误原因
你之前报错大概率是这两个原因:
- 误用了Pandas不存在的属性,比如尝试用
df.length(Pandas里根本没有这个属性) - 读取CSV时出了问题,比如文件路径写错、编码不兼容,导致DataFrame没正确创建就去统计行数
正确实现方法
步骤1:导入Pandas库
首先确保你已经安装了Pandas,然后在代码里导入:
import pandas as pd
步骤2:读取CSV文件
用pd.read_csv()读取你的两个CSV文件,注意路径要正确:
- 如果CSV文件和你的脚本在同一个文件夹,直接写文件名就行
- 如果不在同一目录,要写完整的绝对路径(比如
C:/data/file1.csv或者/home/user/data/file1.csv) - 如果你的CSV没有表头,记得加
header=None参数,不然第一行数据会被当成表头,导致行数统计少一行
示例:
# 读取第一个CSV(假设有表头) df_month1 = pd.read_csv('month1_data.csv') # 读取第二个CSV(假设没有表头) df_month2 = pd.read_csv('month2_data.csv', header=None)
步骤3:统计行数并求和
Pandas里有两种可靠的方式获取DataFrame的行数:
- 使用
len()函数:直接传入DataFrame就能得到行数 - 使用
df.shape[0]:shape是一个元组,第一个元素是行数,第二个是列数
任选一种方式,把两个文件的行数相加赋值给total_months:
# 方法1:用len() total_months = len(df_month1) + len(df_month2) # 方法2:用shape[0] # total_months = df_month1.shape[0] + df_month2.shape[0]
完整示例代码
import pandas as pd # 读取两个CSV文件 df1 = pd.read_csv('first_file.csv') df2 = pd.read_csv('second_file.csv') # 计算总行数 total_months = len(df1) + len(df2) # 验证结果 print(f"两个CSV文件的总行数是:{total_months}")
额外注意事项
- 如果CSV文件很大,不想把整个文件加载到内存里,可以用
pd.read_csv()的chunksize参数分块读取,然后累加行数,这样更省内存:total = 0 for chunk in pd.read_csv('large_file.csv', chunksize=1000): total += len(chunk) - 如果读取时报
UnicodeDecodeError,可以尝试指定编码,比如encoding='utf-8'或者encoding='gbk',根据你的文件编码调整。
内容的提问来源于stack exchange,提问作者db4
相关产品推荐
相关产品推荐

