Разбор ресурсной ведомости с помощью библиотки pandas
На работе часто приходится работать с ресурсной ведомостью в формате excel, откуда необходимо по-группам разбить материалы. Пробую использовать библиотеку pandas для этих целей, однако не могу сообразить как можно такой формат данных excel преобразовать в удобную DataFrame, с которой можно было бы работать. Excel таблица довольно таки неудобно выглядит. Пробовал с помощью срезов, но видимо скиллов не хватает. Буду признателен за помощь. Пример ресурсной ведомости выложил по ссылке.
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Если у вас шапка с заголовками для всех ведомостей одинаковая, то можно сделать так, установив модули pandas и openpyxl:
import pandas as pd
df = pd.read_excel("Ресурсная ведомость - Сводная ресурсная ведомость2.xlsx", skiprows=11, header=None, names=["Код", "Наименование", "Единицы", "Количество", "Брутто", "Класс", "Разряд"])
df = df[df["Код"].notna() & df["Наименование"].notna()]
тогда вы получите df:
Код Наименование Единицы Количество Брутто Класс Разряд
0 91.01.01-034 Бульдозеры, мощность 59 кВт (80 л.с.) маш.час 0.0400 NaN NaN NaN
1 91.01.01-035 Бульдозеры, мощность 79 кВт (108 л.с.) маш.час 12.5300 NaN NaN NaN
2 91.01.01-038 Бульдозеры, мощность 121 кВт (165 л.с.) маш.час 66.6600 NaN NaN NaN
3 91.01.01-039 Бульдозеры, мощность 132 кВт (180 л.с.) маш.час 2.5500 NaN NaN NaN
4 91.01.02-004 Автогрейдеры среднего типа, мощность 99 кВт (1... маш.час 8.6400 NaN NaN NaN
.. ... ... ... ... ... ... ...
94 ФССЦпг-03-01-01-003 Перевозка грузов автомобилями бортовыми грузоп... 1 т груза 22.2191 NaN NaN NaN
97 ФССЦпг-01-01-01-003 Погрузо-разгрузочные работы при автомобильных ... 1 т груза 21.3750 NaN NaN NaN
98 ФССЦпг-01-01-01-045 Погрузо-разгрузочные работы при автомобильных ... 1 т груза 0.8441 NaN NaN NaN
99 ФССЦпг-01-01-02-003 Погрузо-разгрузочные работы при автомобильных ... 1 т груза 21.3750 NaN NaN NaN
100 ФССЦпг-01-01-02-045 Погрузо-разгрузочные работы при автомобильных ... 1 т груза 0.8441 NaN NaN NaN