以下是我尝试的代码,但是这一方法下,每一个csv的行数很多(打开比对过),不知道是出于什么原因,这样计数会多出很多条数据
示例
实际 下面代码统计
文件1 100001 170586
文件2 100001 122563
import glob
import pandas as pd
files = glob.glob('E:/wd'+'//.csv')
def file_len(fname):
with open(fname, encoding='ansi') as f:
for i, l in enumerate(f):
pass
return i + 1
d = {f: file_len(f) for f in files}
df = pd.Series(d).rename('rows').rename_axis('filename').reset_index()
df.to_csv('E:/w/filec.csv', index=0, encoding='ansi')
请问该如何统计出正确的行数呢,感谢解答
望采纳
import pandas as pd
data = pd.read_csv('路径')
len(data)
输出结果为数据行数,不包括表头
https://blog.csdn.net/weixin_42349769/article/details/113674608
读取成Data frame然后读取规模不行吗
多试几个方法:
第一个方法
total = sum(1 for line in open(filename))
详解:
open打开csv文件
for循环遍历csv文件的每一行
sum求遍历csv的循环次数的和,即csv行数。
python中如何统计csv行数
第二个方法
total = len(open(filename).readlines())
详解:
open(filename)打开csv文件
readlines读取csv文件所有行,并以列表形式返回。列表中的每一个元素就是csv文件中的一行。
len取得列表长度。
python中如何统计csv行数
第三个方法
with open(filename, 'r') as f:
csv_reader = csv.reader(f)
for row in csv_reader:
count += 1
详解:
open以只读的方式打开csv文件
csv.reader从csv文件中读取的每一行都作为字符串列表返回
for循环遍历csv.reader,以count作为累加器,求得csv文件行数
python中如何统计csv行数
第四个方法
with open(filename) as f:
for i, line in enumerate(f, 1):
count += 1
详解:
使用enumerate() 函数遍历csv文件,在以count作为累加器,求得csv文件行数
python中如何统计csv行数
enumerate() 语法:
enumerate(sequence, [start=0])
参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
返回值
返回 enumerate(枚举) 对象。
最后一个方法没试过:
all_the_text = open('XXX.csv').read( )
n=all_the_text.count(chr(13)+chr(10))-1
print (n)
可能会有空行,计算之前判断一下