首页 > 解决方案 > 在python中循环读取文件时跳过某些文件的行

问题描述

我试图在一个循环中读取 17 个文件,我想为少数文件跳过 1 行,但不为其他文件。

使用下面给出的代码

import os
import pandas as pd
import glob
path=os.getcwd()
files=os.listdie(os.curdir)
files_xls=[f for f in files if f[-3]=='xls']
filenames=glob.glob(path + "/.xls")
for f in files_xls:
     data=pd.read_excel(f, (skiprows==1 if data.iloc[0]==range(1, 68,1)])

我知道最后一行的代码是不完整且错误的,但我的第一个目标是能够编写代码来跳过少数不是所有文件的行。

请帮我编写代码以跳过该行。

例如,一些示例数据如下所示

1 2 3

姓名 年龄 性别

一个 23 M

两个 32 F

三个 46 M

有些样本看起来像这样

姓名 年龄 性别

四个 67 M

五 78 F

六个 89 M

和最终输出应该是这样的

姓名 年龄 性别

一个 23 M

两个 32 F

三个 46 M

四个 67 M

五 78 F

六个 89 M

PS我是编程新手。

提前致谢

标签: pythonexcelpandas

解决方案


一般来说,您可以执行以下操作:

data=pd.read_excel(f, skiprows==1 if condition else 0)

但是您不能在读取文件之前使用文件中的数据。条件不能是数据的函数(至少您以前没有以其他方式阅读过它)

请注意,在您的循环中,您在每次调用pd.read_excel. 要将循环中的文件读取到 DataFrame,请参见此处


推荐阅读