如何用pandas.read_excel保留首行并跳过指定行范围?
解决pandas.read_excel跳过指定行范围的问题
我明白你遇到的困扰了——你想保留Excel文件的第1行(索引0),跳过中间第2到337行(对应索引1至336),然后读取剩余所有行,但之前用skiprows的尝试没达到预期。
问题出在对skiprows参数的使用逻辑上:当你传入整数时,它会跳过前N行,而非指定索引范围;如果传入列表,需要明确列出所有要跳过的行索引。这里有两种简单有效的解决方法:
方法1:用range()生成要跳过的行索引
直接生成从1到336的索引序列,传给skiprows即可精准跳过目标行:
import pandas as pd # 保留索引0,跳过1-336,读取剩余行 df = pd.read_excel("你的文件路径.xlsx", skiprows=range(1, 337))
range(1, 337)会生成1,2,...,336的整数序列,正好对应你要跳过的行索引,这样pandas会自动保留索引0和从337开始的所有行。
方法2:用lambda函数灵活过滤行
如果需要更自定义的过滤逻辑,可以用lambda函数判断是否跳过某一行:
df = pd.read_excel("你的文件路径.xlsx", skiprows=lambda x: 1 <= x <= 336)
这个lambda函数会在索引处于1到336之间时返回True,触发pandas跳过该行,效果和方法1完全一致。
验证结果
读取完成后,你可以通过df.shape[0]查看行数,结果应该是1161 - 336 = 825行(保留了索引0的1行,加上337到1160的824行),完全符合你的需求。
之前你可能误传了整数给skiprows(比如skiprows=336),这会让pandas跳过前336行(包括你想保留的索引0),所以才会出现读取全部行的问题。现在用上面的方法就能精准控制行的保留与跳过了。
内容的提问来源于stack exchange,提问作者florence-y
相关产品推荐
相关产品推荐

