繁体   English   中英

Pandas:从具有特定值的行下方开始读取 Excel 文件

[英]Pandas: reading Excel file starting from the row below that with a specific value

假设我有以下 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需要修复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:]

如果您不需要包含“start”的行,只需将 row_start 增加 1

df_required = df.loc[row_start+1:]

您可以使用pd.read_excel('C:\\Users\\MyFolder\\MyFile.xlsx', sheet_name='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

如果您知道您感兴趣的特定行,您可以使用skiprow从顶部跳过,然后使用nrows仅解析您想要的行(或行) - 请参阅pandas.read_excel

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM