Панды: применение префиксов col, объединение столбцов и разбиение на строки по длине - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть зашифрованный 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:

  1. Мне нужно выделить реф.из ['ref'] и введите его в ['refnew'].
    Условие: if > 10 символов, его необходимо ввести в ['desc'] с префиксом: REF: .
    Но: Данные очень противоречивы, поэтому я мог бы также оставить их в ['desc'].Было бы неплохо иметь выбор в качестве данных, независимо от того, являются ли они очень структурированными или нет - как показано выше.

  2. Если ['desc'] -строка равна > 30, ее следует обрезать только после пробелови взорван в новую строку.

  3. Значения [['serial'], ['type'] and ['val']] должны быть добавлены к ['desc'] с
    условие: не быть longer than 30 символами и не должны идтиболее 2 рядов, скорее автономно

  4. (опционально) Если UoM не PCS, его также следует ввести в ['desc'], чтобы снова выделить другую единицу измерения.

Мне кажется, что спросить много.Я был бы очень рад за подсказки
(т.е. объединение столбцов по максимальной длине;
разбиение строк по максимальной длине и применение разделителя в конце каждого столбца с объединением;
применение функции к строкам, например (если «Maker:» заменить на «MKR:» ...)

Спасибо, куча

PS: Я новичок в Python и SO, не стесняйтесь, чтобы дать мне отзыв о моем стилезадавая вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...