如果数据集包含n = 385,现在我想拆分,以便每个块都包含95,95,95,95,5之类的点。现在,我想将最后5个点添加到上一个块
我正在使用jupyter笔记本
def chunks(l, n):
return [l[i:i+n] for i in range(0, len(l), n)]
slice =chunks(dataframe, int(len(dataframe)/4))
我希望输出的大小相等
答案 0 :(得分:0)
def chunks (l, n):
r = [l]
while len (r [-1]) >= 2 * n:
r [-1:] = [r [-1][:n], r [-1][n:]]
return r
答案 1 :(得分:0)
您可以添加一个条件,如果最后一个块的长度不理想,该函数会将其添加到前一个块中,并仅返回直到该索引为止。例如:
def chunks(l, n):
foo = [l[i:i+n] for i in range(0, len(l), n)]
if len(foo[-1]) != n:
foo[-2]+= foo[-1]
return foo[:-1]
else:
return foo
l = [i for i in range(100)]
chunks = chunks(l, 6)
print(chunks)
输出:
[[0, 1, 2, 3, 4, 5],
[6, 7, 8, 9, 10, 11],
...
[84, 85, 86, 87, 88, 89],
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
答案 2 :(得分:0)
仅当最后一个子列表的大小不为n(块大小)时,才可以通过添加最后一个子列表,然后删除最后一个子列表来更新现有代码中列表的倒数第二个子列表
myBtnIdClicked
输出将为
def chunks(l, n):
li = [l[i:i+n] for i in range(0, len(l), n)]
#Add the second last sublist to the last sublist
#Only if the last sublist is not of size n
if len(li[-1]) != n:
li[-2] += li[-1]
#Remove the last element
li.pop(-1)
return li