Excel неправильный поиск в строке python

Рейтинг: 0Ответов: 1Опубликовано: 04.07.2023

У меня в файле значение name находится в строке 10 но почему-то код определяет как 8

import pandas as pd


df = pd.read_excel(r'C:\Users\Cat\AppData\Roaming\ACode\first project\basedata.xlsx')


filtered_rows = df[df.applymap(lambda x: 'name' in str(x).lower()).any(axis=1)]

for index in filtered_rows.index:
    okey = index
    values_row_8 = filtered_rows.iloc[okey].tolist()
    print(f"Значения в строке 8: {values_row_8}")

Ответы

▲ 0

Можно предположить (не видя источника данных), что 10 строка становится 8-й по двум причинам.
Первая причина - первая строка становится заголовком фрейма, т.к. в методе pd.read_excel() параметр header по умолчанию равен 0, т.е. значения первой (или нулевой с точки зрения pandas) строки используются как метки для столбцов фрейма.
Вторая причина - из-за разницы в нумерации строк. В Excel она начинается с 1, а во фрейме с 0.
Каждая из причин "сдвигает" нумерацию строк на 1, поэтому 10 - 2 = 8