#方法一  

def list_of_groups(init_list, children_list_len):
    """
    :param init_list: 原列表
    :param children_list_len: 指定切割的子列表的长度(就是你要分成几份)
    :return: 新列表
    """
    list_of_groups = zip(*(iter(init_list),) * children_list_len)
    end_list = [list(i) for i in list_of_groups]
    count = len(init_list) % children_list_len
    end_list.append(init_list[-count:]) if count != 0 else end_list
    return end_list

#方法二

import numpy as np
# writer_list是写入的列表  reshape(行,列)
arr = np.array(writer_list).reshape(10, 8)

推荐方法二,方便快捷,当然,这也得按实际情况分析

实例:

import numpy as np

writer_list = [i for i in range(80)]
print(writer_list)

print('-'*66)

arr = np.array(writer_list).reshape(10, 8)
print(arr)


需求情况:我需要将10个模型按照8个买卖类型再根据市场分类15个情况得到的数据写入到csv或者excel文件中。

writer_list  返回一个大列表,大列表中的元素是每个模型买卖类型的数据,一个元素有15条数据。这就是要写入的数据类型,总之就是要把(1200条)数据全部提取出来变成一个大列表,然后每隔120个数据就成一个小列表。我想要的数据类型是8列,120行,写入excel文件中是根据你的行踪来写入的,影响可视化,所以写入所以要转置。

不得不夸numpy和pandas就是牛,转换很快的

arr = np.array(writer_list).reshape(10, 120)
print(arr)
print('-'*66)
# 数组倒置
data = pd.DataFrame(arr.T)
data.to_excel('./123.xlsx')
print('程序运行成功!!')

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐