как создать столбец возрастающих чисел по определенному значению? - PullRequest
0 голосов
/ 05 августа 2020

Как мне составить список или столбец в 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

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

Первое использование циклов в 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
0 голосов
/ 05 августа 2020

Самым простым способом, который приходит мне в голову:

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

Это также можно было бы записать как понимание списка, которое представляет собой только одну строку кода и намного круче;)

lista = [ i%5+1 for i in range(50) ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...