Я работаю с людьми, которые используют Excel и постоянно добавляют или вычитают строки без ведома для меня. Я должен очистить документ для данных, а строка, в которой найден заголовок, изменяется в зависимости от настроений.Может ли панды неявно определять заголовок на основе значения, а не строки?
Моя задача - обработать эти колебательные токи, указав, где находится заголовок.
Я сначала организовал мой scrape, используя xlrd
, и ряд условных операторов, используя значения в книге.
Моя первая попытка работы и длинный (так что я не буду публиковать его), но включает в себя приведение в всем листе, а не ломтики:
from xlrd import open_workbook
book = open_workbook(fName)
sheet = book.sheet_by_name(sht)
return book,sheet
Однако, это большое, и я бы предпочел, чтобы получить более целенаправленный выбор. Значения заголовка никогда не меняются, а также когда данные появляются после этой строки.
Знаете ли вы способ неявного получения заголовка на основе найденного значения на листе, используя либо pandas.ExcelFile
, либо pandas.read_excel
?
Вот моя попытка с pandas.ExcelFile
:
import pandas as pd
xlsx = pd.ExcelFile(fName)
dataFrame = pd.read_excel(xlsx, sht,
parse_cols=21, merge_cells=noMerge,
header=header)
return dataFrame
Я не могу получить код для работы, если я не дам на вызов правильное значение заголовка, который является именно то, что я надеюсь избежать.
Этот previous question, похоже, представляет собой аналогичную проблему, не затрагивая проблему поиска заголовков неявно.
почему вы не цикл и разобрать первые строки листа до тех пор, пока не найдете строку, где заголовок есть? Он даст вам количество строк для перехода на 'skip_rows', и вы будете использовать pandas как обычно. – Boud
Цикл и анализ с помощью чего? Это то, что делает мой xlrd код, но я не понимаю, как выглядит этот woud – double0darbo
см. Ниже ответ – Boud