我有一个包含 828 个值的数据列。在该列中,它会多次重复数字 1-18。我想要一个新列,每 18 行抓取 5 行,这样它就可以重复 1-5 次。这并不完全是我的数据的样子,但方法与我想要对实际数据执行的操作相同。
我的重复1-18的数据列存储在df_rois中
我尝试了这行代码,但它只是每 5 跳过一次,而不保留中间的数字:
df_rois2 = df_rois[::5]
我目前在 df_rois 中拥有的内容:
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18]
我想要 df_rois2 中的内容:
[ 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5]
最佳答案
您可以循环遍历 18 长度的切片并提取前 5 个元素,然后使用 extend
将它们添加到 df_rois2
:
df_rois2 = []
for i in range(0, len(df_rois), 18):
df_rois2.extend(df_rois[i:i + 5])
print(df_rois2)
输出:
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
关于python - 提取列表中每 m 行的 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828764/