Pandas, создать и объединить строки в желаемые столбцы - PullRequest
0 голосов
/ 04 августа 2020

У меня есть следующий CSV-файл с одним столбцом и большим количеством строк (я просто добавляю 2 строки для простоты)

|                  order_detail
|-------------------------------------------------------------------------------------------------------------------------
|product 1 & product 2|category 1|8~product 4|category 3 |10~product 1 & product 19|category 8|6~product 50|category 4|6
|-------------------------------------------------------------------------------------------------------------------------
|product 2|category 10|2~product 14|category 3 |1

Я хотел бы создать 3 столбца из этого, чтобы мои окончательный результат выглядит так:

productname           |category   |number of products
----------------------------------------------------
product 1 & product 2 |category 1 |8
product 4             |category 3 |10
product 1 & product 19|category 8 |6
product 50            |category 4 |6
product 2             |category 10|2
product 14            |category 3 |1

Я попытался заменить символ ~ на | а затем разбиваю строку, но я не могу получить желаемый результат.

Вот мой код:

import pandas as pd
df = pd.read_csv('./test.csv', encoding='ISO-8859–1', sep=',')

replacedString = df['ORDER_DETAIL'].str.replace('~', '|')

df[['productname','category','number of products']]= replacedString.str.split('|',2, expand=True)

Я получаю продукт и категорию в правильном формате, но «количество продуктов "не создает других строк.

productname            |category   |number of products|
---------------------------------------------------------
Product 1 & product 2  |category 1 |8|product 4 | category 3 |10|product 1 & product 19|category 8|6|product 50|category 4|6
----------------------------------------------------------
product 2              |category 10|2|product 14|category 3|1

Благодарю за вашу помощь

...