熊猫:从下面的行开始读取具有特定值的Excel文件


问题内容

说我有以下Excel文件:

    A      B     C
0   -      -     -
1   Start  -     -
2   3      2     4
3   7      8     4
4   11     2     17

我想读取数据框中的文件,以确保我开始在该值所在的 行下方 开始读取它Start

注意 :该Start值并不总是位于同一行中,所以如果我要使用:

import pandas as pd
xls = pd.ExcelFile('C:\Users\MyFolder\MyFile.xlsx')
df = xls.parse('Sheet1', skiprows=4, index_col=None)

这将因skiprows需要修复而失败。是否有任何变通办法来确保xls.parse找到字符串值而不是行号?


问题答案:
df = pd.read_excel('your/path/filename')

答案有助于找到df中“开始”的位置

 for row in range(df.shape[0]):

       for col in range(df.shape[1]):

           if df.iat[row,col] == 'start':

             row_start = row
             break

在具有row_start之后,您可以使用熊猫的子帧

df_required = df.loc[row_start:]

而且,如果您不需要包含“开始”的行,则只需将row_start加1

df_required = df.loc[row_start+1:]