猿问

如何按特定值创建一列升序数字?

我如何在 pandas 中创建一个列表或列,该列中的数字以 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


九州编程
浏览 91回答 2
2回答

BIG阳

首先在 pandas 中使用循环是反模式,主要是如果存在矢量化解决方案,这里numpy.tile:df = pd.DataFrame({'col': np.tile(np.arange(1, 6), 10)})print (df.head(12))    col0     11     22     33     44     55     16     27     38     49     510    111    2

MMTTMM

以我想到的最简单的方式:lista = []for i in range(50):    lista.append(i%5+1)print(lista)这也可以写成列表理解,这只是一行代码,而且更酷;)lista = [ i%5+1 for i in range(50) ]
随时随地看视频慕课网APP

相关分类

Python
我要回答