熊猫:应用col前缀,连接列并按长度爆炸到行

时间:2018-09-21 19:42:16

标签: python string pandas

我有一个加密的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          |       |


简短:

  1. 我需要隔离参考号。 ['refnew']中的内容,并放在if > 10中。
    条件:['desc']个字符,需要在['desc']中添加前缀:REF:
    但是:数据非常不一致,因此我也可以将其保留在['desc']中。可以选择数据是否非常结构化,就像上面显示的那样。

  2. 如果> 30字符串是[['serial'], ['type'] and ['val']],则应仅在空格后将其剪切并爆炸到新行。

  3. 应将['desc']的值附加到longer than 30,且条件为
    :不为UoM字符,并且不应超过2行,而应站立

  4. (可选)如果['desc']不是PCS,也应将其放入curl --unix-socket /var/run/docker.sock http://localhost/events ,以再次强调不同的度量单位。

我认为有很多问题要问。我很高兴得到提示
(即按最大长度连接列;
按最大长度展开行,并在每个列的末尾使用分隔符进行连接;
对行应用函数,例如(如果将“制造商:”替换为“ MKR:” ...)

感谢堆

P.S .:我是Python和SO的新手,请随时给我有关我问问题风格的反馈。

0 个答案:

没有答案