Всем добрый вечер, пожалуйста, помогите сделать правильно и красиво.
Имеется следующий датафрейм
df = pd.DataFrame(
{'Действие':('1', '2', '3', '4', '5'),
'Продукт':('A', np.nan, 'B', 'C', np.nan),
'Кол-во':(1, np.nan, 1, 1, np.nan),
'Продукт(n)':(np.nan, 'A', np.nan, np.nan, 'D'),
'Кол-во(n)':(np.nan, 1, np.nan, np.nan,1) })
df
Требуется преобразовать данные таким образом, чтобы для каждой строки таблицы информация по продукту и кол-ву находилась в 2-х столбцах, а не в n-ом кол-ве как в исходнике.
У меня получилось сделать нужное преобразование каждой строки.
Product = df.loc[1].to_frame(name='Product')
Value = df.loc[1].to_frame(name='Value').shift(periods=-1)
Temp = Product.merge(Value, how = 'left', left_index=True, right_index=True)
Temp.filter(like='родукт', axis=0).dropna(subset=["Product"])
Вот только моих знаний не хватает для применения данной функции ко всем строкам таблицы.
Буду признателен, если поможете добавить 2 правильных столбца в исходный датафрейм.