您可以使用np.arange
和模运算符,然后转换为字符串并连接固定部分:
import numpy as np
import pandas as pd
n = 14
out = pd.Series(np.arange(n)%3+1).astype(str)+'-59/4'
# or
out = pd.Series(np.arange(n)%3+1, dtype=str)+'-59/4'
或者,使用np.tile
(效率较低,但如果您有任意前缀,则可能更通用):
prefixes = ['1', '2', '3']
n = 14
out = pd.Series(np.tile([f'{p}-59/4' for p in prefixes], int(np.ceil(n/3)))[:n])
或使用您的循环(如果需要数组/系列作为输出,则不推荐使用):
n = 14
lis_num = []
for x in range(n):
lis_num.append(f'{x%3+1}-59/4')
out = pd.Series(lis_num)
输出:
0 1-59/4
1 2-59/4
2 3-59/4
3 1-59/4
4 2-59/4
5 3-59/4
6 1-59/4
7 2-59/4
8 3-59/4
9 1-59/4
10 2-59/4
11 3-59/4
12 1-59/4
13 2-59/4
dtype: object