从具有条件的文件夹中加载多个csv文件

时间:2019-05-20 07:02:27

标签: python pandas csv glob

我有一个非常非结构化的文件夹,其中很多文件没有条目(只是行标题),但是里面没有数据。我知道我可以包含它们,并且它们不会改变任何内容,但是问题是,标题到处都不相同,因此每个文件都包含一些额外的手动工作。

直到现在,我现在如何使用以下代码加载特定文件夹中的所有文件:

import glob

path = r'C:/Users/...'
all_files = glob.glob(path+ "/*.csv")

li = []

for filename in all_files:
    frame = pd.read_csv(filename, index_col=None, header=0, sep=';', encoding='utf-8', low_memory=False)
    li.append(frame)

df = pd.concat(li, axis=0, ignore_index=True, sort=False)

如何跳过每个只有一行的文件?

1 个答案:

答案 0 :(得分:1)

从以下位置修改此循环:

for filename in all_files:
    frame = pd.read_csv(filename, index_col=None, header=0, sep=';', encoding='utf-8', low_memory=False)
    li.append(frame)

收件人:

for filename in all_files:
    frame = pd.read_csv(filename, index_col=None, header=0, sep=';', encoding='utf-8', low_memory=False)
    if len(frame) > 1:
        li.append(frame)

这就是if语句的作用。