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

2024-05-08 07:11:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 文件数据importpandasparseasxlsmyfile
2条回答

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

然后,您的数据帧应如下所示:

    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
df = pd.read_excel('your/path/filename')

This应答有助于找到df中“start”的位置

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

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

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

             row_start = row
             break

开始划船后,你可以使用熊猫的子帧

df_required = df.loc[row_start:]

如果不需要包含“start”的行,只需将行从1开始

df_required = df.loc[row_start+1:]

相关问题 更多 >