Допустим, я начинаю с фрейма данных, в котором есть некоторые данные и столбец величин:
In: df=pd.DataFrame({'first-name':['Jan','Leilani'],'Qty':[2,4]})
Out: Qty first-name
2 Jan
4 Leilani
Я хочу создать фрейм данных, который копирует и маркирует данные в новые строки, количество раз равное количеству в каждой строке. Вот как должен выглядеть вывод:
Qty first-name position
2 Jan 1
2 Jan 2
4 Leilani 1
4 Leilani 2
4 Leilani 3
4 Leilani 4
Я могу сделать это, используя python так:
l=[]
x=0
for idx in df.index:
x=0
for _ in range(df.loc[idx]['Qty']):
x+=1
tempSrs=df.loc[idx]
tempSrs['position']=x
l.append(tempSrs)
outDf=pd.DataFrame(l)
Это очень медленно. Есть ли способ сделать это с помощью функций панд? По сути, это «разворот», который в пандах означает «расплавление», но я не смог понять, как использовать функцию расплавления для достижения этой цели.
Спасибо