У меня есть зашифрованный xls-файл, который я копирую для чтения, преобразования в csv и чтения в пандах.После очистки это выглядит примерно так:
| pos | descr | serial | ref | type | val | qty | uom |
|----- |--------------------------- |-------------- |---------------------------------------------------- |---------- |-------- |----- |----- |
| 1 | Shower hose 1750 mm | 205L | 40874 | 9,5L/min | | 6 | PCS |
| 2 | Hand shower 130 mm | | 40168 | 9,5L/min | | 4 | PCS |
| 3 | Shower rail 600 mm | | 0351 MAKER: GROHE | | | 4 | PCS |
| 4 | Basin mixer tap | HL23330000 | 039998 MAKER: GROHE, chrome | | | 2 | PCS |
| 5 | Bowl Ceramic Kitchen sink | 548092900078 | RLCW 4920 Bowl White, Reversible MAKER: Reginox | | 10360 | 12 | PCS |
Мой желаемый результат такой:
| refnew | descr | qty |
|--------------- |--------------------------------- |----- |
| 40874 | Shower hose 1750 mm; SRL: 205L; | 6 |
| | Type: 9,5L/min, UoM: MTR | |
| 40168 | Hand shower 130 mm; | 4 |
| | Type: 9,5L/min | |
| 0351 | Shower rail 600 mm; MKR: GROHE | 4 |
| 0399989381772 | Basin mixer tap; | 2 |
| | REF: 0399989381772; | |
| | SRL: HL23330000; | |
| | MKR: GROHE, chrome | |
| RLCW 4920 | Bowl Ceramic Kitchen sink; | 12 |
| | Bowl White, Reversible; | |
| | SRL: 548092900078; | |
| | MKR: Reginox; Val: 10360 | |
Short:
Мне нужно выделить реф.из ['ref']
и введите его в ['refnew']
.
Условие: if > 10
символов, его необходимо ввести в ['desc']
с префиксом: REF: .
Но: Данные очень противоречивы, поэтому я мог бы также оставить их в ['desc']
.Было бы неплохо иметь выбор в качестве данных, независимо от того, являются ли они очень структурированными или нет - как показано выше.
Если ['desc']
-строка равна > 30
, ее следует обрезать только после пробелови взорван в новую строку.
Значения [['serial'], ['type'] and ['val']]
должны быть добавлены к ['desc']
с
условие: не быть longer than 30
символами и не должны идтиболее 2 рядов, скорее автономно
(опционально) Если UoM
не PCS, его также следует ввести в ['desc']
, чтобы снова выделить другую единицу измерения.
Мне кажется, что спросить много.Я был бы очень рад за подсказки
(т.е. объединение столбцов по максимальной длине;
разбиение строк по максимальной длине и применение разделителя в конце каждого столбца с объединением;
применение функции к строкам, например (если «Maker:» заменить на «MKR:» ...)
Спасибо, куча
PS: Я новичок в Python и SO, не стесняйтесь, чтобы дать мне отзыв о моем стилезадавая вопрос.