在一个包含间隔(1-59/4)的列表范围中,我希望第一个元素只更改3行.

n = 14
lis_num = []

for x in range(n):
   lis_num.append('need the logic')

output of lis_num should be like below:
1 1-59/4
2 2-59/4
3 3-59/4
4 1-59/4
5 2-59/4
6 3-59/4
7 ..
8 ..
.....
14 ..

从第0行到第13行依次类推

我还没有try 过任何事情,我在寻找我们如何处理这一问题的 idea .

推荐答案

您可以使用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

Python相关问答推荐

配置Sweetviz以分析对象类型列,而无需转换

Python会扔掉未使用的表情吗?

Pandas 滚动最接近的价值

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

海运图:调整行和列标签

为什么符号没有按顺序添加?

如何使用pytest来查看Python中是否存在class attribution属性?

部分视图的DataFrame

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

使用NeuralProphet绘制置信区间时出错

不允许访问非IPM文件夹

多处理队列在与Forking http.server一起使用时随机跳过项目

Python中的变量每次增加超过1

搜索按钮不工作,Python tkinter

使用类型提示进行类型转换

如何使用大量常量优化代码?

如何在Python中从html页面中提取html链接?

修改.pdb文件中的值并另存为新的

Match-Case构造中的对象可调用性测试

如何计算Pandas 中具有特定条件的行之间的天差