我有如下所示的 csv 文件
文件1
A B
1 2
3 4
文件2
A B
1 2
文件3
A B
1 2
3 4
5 6
我想计算所有csv文件中的行数
我试过了
f=pd.read_csv(file1)
f.shape
但是当我有很多 csv 文件时,它会花费太多时间。
我想得到如下结果
rows
file1 2
file2 1
file3 3
我怎样才能得到这个结果?
最佳答案
您可以创建所有文件的 length
的 dict
,然后为 DataFrame
创建 Series
m 添加 to_frame
:
import glob
import pandas as pd
files = glob.glob('files/*.csv')
d = {f: sum(1 for line in open(f)) for f in files}
print (pd.Series(d))
print (pd.Series(d).rename('rows').rename_axis('filename').reset_index())
open
不保证文件被正确关闭,所以另一种解决方案:
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
d = {f: file_len(f) for f in files}
关于python - 如何计算多个csv文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320868/