如何创建一列按一定值升序排列的数字



如何在panda中创建一个列表或列,该列中的数字以1的步长递增,当它达到某个数字(比如5(时,它会返回1并重复此过程?我的脚本如下,它不会像预期的那样工作:

i = 0
lista = []
for i in range(50):
i += 1
if i == 5:
continue
lista.append(i)
print(i)
# what I wanted from this code is like :
1
2
3
4
5
.
.
.
# repeat printing 1-5 for 10 times

首先在panda中使用循环是反模式的,主要是在存在矢量化解决方案的情况下,这里是numpy.tile:

df = pd.DataFrame({'col': np.tile(np.arange(1, 6), 10)})
print (df.head(12))
col
0     1
1     2
2     3
3     4
4     5
5     1
6     2
7     3
8     4
9     5
10    1
11    2

我想到的最简单的方法是:

lista = []
for i in range(50):
lista.append(i%5+1)
print(lista)

这也可以写成列表理解,这只是一行代码,而且更酷;(

lista = [ i%5+1 for i in range(50) ]

最新更新