假设我有一个包含数据和数量列的数据框:
我想创建一个数据框,将每行的数据复制并标记到新的行中,次数等于每行的数量。以下是输出结果应该如何显示的示例:
我可以使用Python来完成这个任务,代码如下:
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)
这很慢。有没有一种方法可以使用pandas函数完成这个任务?实际上,这相当于“解除旋转”,在pandas中称为“melt”,但我无法弄清楚如何使用melt函数来完成此操作。
谢谢!