Python把一个列表中的元素按指定数目分成多个列表的方式
利用numpy的array数组快速转换
·
#方法一
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('程序运行成功!!')
更多推荐
已为社区贡献1条内容
所有评论(0)