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