Я думаю, что мой код близок, но действительно облажался. В основном у меня есть ряды данных о продажах. Одна из переменных - это номер квитанции, а другая - строка, содержащая единицы и продукты в виде строки.
Я бы хотел новую строку для каждого уникального продукта, сохранив соответствующий номер чека для этой строки. Например, запись для квитанции A с продуктами L и Q должна стать двумя отдельными записями: квитанция A с L и квитанция A с Q. Поэтому я пытаюсь разбить строку на переменные, а также создать новую запись под тем же идентификатор квитанции.
В любом случае, но когда я закончу, я случайно продублировал некоторые записи. Любая помощь с а) заставить его генерировать правильный вывод и б) более красивый / простой код? (Мне также не нужна старая переменная Description).
Большое спасибо
import pandas as pd
import numpy as np
df = pd.DataFrame({"Date": ["9/26/17 2:33 PM", "9/26/17 2:23 PM", "9/26/17 2:22 PM"], "Receipt number": ["1-1002","1-1001","1-1000"], "Description": ["1 x Capacino, 2 x Americano","1 x Americano","1 x Latte"]})
df
df2 = df['Description'].str.split(',').apply(pd.Series, 1).stack()
df2.index = df2.index.droplevel(-1)
df2.name = 'Product'
df = df.join(df2)
df.join(df['Product'].str.split(' x ', 1, expand=True).rename(columns={0:'Units', 1:'Product Name'}))