我想根据imageno+1出现的次数在一个新的df(df2)中打印每一行。所以在下面的数据中,第1行应该打印两次(有两个7),第2行打印两次,第3行打印两次,第4行打印一次(有一个8),第5行打印一次,等等。

import pandas as pd

print(df)
   x-position  y-position  imageno
1  220         220          6
2  627         220          6
3  620         220          6
4  220         220          7
5  628         220          7
6  621         220          8

df2 = pd.DataFrame(columns=['x-position', 'y-position', 'imageno'])

最佳答案

调整后IIUCmerge

df.assign(imageno=df.imageno+1).merge(df[['imageno']],on='imageno').assign(imageno=lambda x : x['imageno']-1)
Out[894]:
   x-position  y-position  imageno
0         220         220        6
1         220         220        6
2         627         220        6
3         627         220        6
4         620         220        6
5         620         220        6
6         220         220        7
7         628         220        7

关于python - 打印行的次数是其值的多少倍,其他行将出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55748976/

10-10 18:46