熊猫:从下面的行开始读取具有特定值的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:]