算法目的
有一个csv文件,是以天数为单位,24h的空气质量数据。我想带着每天24h的数据以天为单位打乱整个csv,一共有1825天。
Python新上路,真诚求思路!
目前想到的办法是每隔24行提取一次数据并单独保存到一个文件,这样就是一共提取出来1825个csv,然后把这些csv再随机(不知道是否能办到)组合起来生成一个新的csv数据表,但是不咋会怎么循环提取每24行的数据,以及后续怎么随机组合
或者有uu能给出新的思路?
有一个csv文件,是以天数为单位,24h的空气质量数据。我想带着每天24h的数据以天为单位打乱整个csv,一共有1825天。
Python新上路,真诚求思路!
目前想到的办法是每隔24行提取一次数据并单独保存到一个文件,这样就是一共提取出来1825个csv,然后把这些csv再随机(不知道是否能办到)组合起来生成一个新的csv数据表,但是不咋会怎么循环提取每24行的数据,以及后续怎么随机组合
或者有uu能给出新的思路?
不需要每隔24行数据单独保存到一个文件,
只需要用列表切片每隔24行切成为一个列表,把切片出来的列表作为一个元素添加到一个li2列表中.
用random.shuffle(li2)随机打乱li2,再合并写到一个新的csv数据表即可
你题目的解答代码如下:
import random
import csv
with open("data.csv","r",newline="", encoding='utf-8') as fileObj:
li = list(csv.reader(fileObj))
n = 24
li2 = []
for i in range(0,len(li),n):
li2.append(li[i:i+n])
random.shuffle(li2)
# print(*li2,sep='\n')
with open("data2.csv","w",newline="", encoding='utf-8') as fileObj:
wr = csv.writer(fileObj)
for v in li2:
wr.writerows(v)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!