Поиск и сортировка по датафреймам Pandas в запутанной таблице
имеется 2 таблицы exel выгнанные из базы 1C в стремном формате, требуется каким-то образом вычленить нужные данные и создать новый эксель только с ними.
Требуется достать все данные под HOWO В787НТ,HOWO Т488ЕТ, Sitrak О243КС. Проблема в том, что они разбросаны. Может быть надпись HOWO В787НТ и указаны 3 ячейки с весом, а чуть ниже еще такая же надпись допустим 1 ячейка, и плюсом во втором exel файле ровно та же история. Как автоматически все это объеденить в одну большую таблицу?
Написал какой-то супер простенький код, который хотябы создает отдельную таблицу без лишней верхней информации В идеале надо сделать чтобы по нажатию, или даже просто каждые 24 часа приложение само скачивало с почты присланные 2-е таблицы от определенного человека, доставало все нужное, объеденяла и создавала эксель и пдф результата. За данную помощь могу заплатить, просто главное сделать, а то каждый день заниматься этим вычленение информации на протяжении пары лет как-то лень... Заранее спасибо. По этой ссылке можно скачать примеры этих exel таблиц: "https://drive.google.com/drive/folders/1V2eZAyibQFAAqHv3U08JIm-vgFqK6OJY?usp=drive_link"
Ответы (1 шт):
Вообще, сначала данные нужно готовить, а потом с ними работать. в вашем случае можно сделать так (первый файл из примера, ищем все вхождения MERCEDES №6 В616ХУ АЛМАЗ):
# читаем файл, пропускаем заголовки и последнюю строку
df = pd.read_excel("04-05.11 (1).xls", skiprows=10, skipfooter=1)
src_str = "MERCEDES №6 В616ХУ АЛМАЗ"
# меняем все порядковые номера после названия модели на это самое название
df.iloc[:,0] = df.iloc[:,0].mask(df.iloc[:,0].astype(str).str.isdigit()).ffill()
# убираем строки без данных
df = df.dropna(thresh=6)
# выбираем ряды, в которых название равно нашей строке
res = df[df.iloc[:,0]==src_str]
res:
Смена №2 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 3590.05
7 MERCEDES №6 В616ХУ АЛМАЗ NaN 20:20:34 NaN 63.65 20:28:06 21.40 42.25
8 MERCEDES №6 В616ХУ АЛМАЗ NaN 22:00:47 NaN 62.45 22:11:22 21.35 41.10
9 MERCEDES №6 В616ХУ АЛМАЗ NaN 23:43:14 NaN 57.30 23:52:20 21.35 35.95
10 MERCEDES №6 В616ХУ АЛМАЗ NaN 1:37:48 NaN 67.00 1:44:53 21.35 45.65
