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

时间:2018-04-17 10:46:34

标签: python excel pandas

说我有以下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找到字符串值而不是行号?

3 个答案:

答案 0 :(得分:4)

cost = gamma(3, 125, 0);

This回答有助于在df中找到“开始”的位置

cost
拥有row_start之后

你可以使用pandas的子帧

df = pd.read_excel('your/path/filename')

如果你不需要包含'start'的行,只需将row_start增加1

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

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

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

             row_start = row
             break

答案 1 :(得分:3)

您可以使用pd.read_excel('C:\Users\MyFolder\MyFile.xlsx', sheetname='Sheet1'),因为它会忽略空的excel单元格。

您的DataFrame应该如下所示:

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

然后使用

删除第一行
df.drop([0])

获取

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

答案 2 :(得分:3)

如果您知道您感兴趣的特定行,则可以使用skiprow从顶部跳过,然后使用nrows仅解析您想要的行(请参阅{{3} }

df = pd.read_excel('myfile.xlsx', 'Sheet1', skiprows=2, nrows=3,)