python - 如何计算多个csv文件中的行数

标签 python pandas dataframe

我有如下所示的 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

我怎样才能得到这个结果?

最佳答案

您可以创建所有文件的 lengthdict,然后为 DataFrame 创建 Seriesm 添加 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/

相关文章:

python - 按 ID 分组,选择同一 ID 列中的最高值

apache-spark - Dataframes Pyspark 中时间戳列的分区

python - 现实与预测之间的延迟差距

python - 为什么我收到搜索栏不难处理的消息?

python - 当宽度 <1.0 时,Matplotlib 周线太细;当宽度>=1.0 时,周线太粗

r - R中合并期间的数值比较

python - Pandas - 分组、排序并保留第一行

python - 使用python读取文本文件中不带空格的数字

python - 在不破坏内存的情况下复制生成器

python - 如何将多个函数应用于 groupby 对象