我如何在 pandas 中創建一個列表或列,該列中的數字以 1 為步長增加,當它達到某個數字(比方說 5)時,它返回 1 并重復此過程?我的腳本如下所示,它不會按預期工作:i = 0lista = []for i in range(50): i += 1 if i == 5: continue lista.append(i)print(i)# what I wanted from this code is like :12345...# repeat printing 1-5 for 10 times
2 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
首先在 pandas 中使用循環是反模式,主要是如果存在矢量化解決方案,這里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

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
以我想到的最簡單的方式:
lista = []
for i in range(50):
lista.append(i%5+1)
print(lista)
這也可以寫成列表理解,這只是一行代碼,而且更酷;)
lista = [ i%5+1 for i in range(50) ]
添加回答
舉報
0/150
提交
取消