Python 熊猫使用循环复制行
我有一个如下所示的数据帧:Python 熊猫使用循环复制行,python,pandas,numpy,Python,Pandas,Numpy,我有一个如下所示的数据帧: SNFrom SNTo Name Age 0 1 4 John 8 1 5 7 Jack 6 Name Age SN 0 John 8 1 1 John 8 2 2 John 8 3 3 John 8 4 4 Jack 6 5 5 Jack 6 6 6 Jack 6 7 使用pandas,我想产生如下结果
SNFrom SNTo Name Age
0 1 4 John 8
1 5 7 Jack 6
Name Age SN
0 John 8 1
1 John 8 2
2 John 8 3
3 John 8 4
4 Jack 6 5
5 Jack 6 6
6 Jack 6 7
使用pandas
,我想产生如下结果:
SNFrom SNTo Name Age
0 1 4 John 8
1 5 7 Jack 6
Name Age SN
0 John 8 1
1 John 8 2
2 John 8 3
3 John 8 4
4 Jack 6 5
5 Jack 6 6
6 Jack 6 7
一般规则是,我想根据
SNFrom
和SNTo
中指定的范围添加新行,因此,例如,John
应该有第1-4行,Jack
应该有第5-7行。这里有一种使用apply
的相对简单的方法:
设置:
解决方案:
这是一个使用
np的矢量化解决方案。重复:
s = df.SNTo - df.SNFrom
i = np.repeat(df.index, s+1)
t = df.loc[i, ['Name', 'Age', 'SNFrom']]
t.assign(SN=t.groupby(level=0).cumcount() + t.SNFrom).drop('SNFrom', 1)
请不要把那些真的很难复制和耗时的图片,而是更新你的帖子,把你的数据放在那里,它现在是什么样子,你期望作为一个理想的输出,这样它将很容易阅读和回答。
Name Age SN
0 John 8 1
0 John 8 2
0 John 8 3
0 John 8 4
1 Jack 6 5
1 Jack 6 6
1 Jack 6 7