如图所示,下载到的数据中,经常出现小时值缺失的情况,为了保障求每天O3-8h最大值,需要在12和14之间插入一个空行(如果每天都有24行,后面用excel求最大值就可以直接拖出来了),但是一年数据量非常大,肉眼看不太现实,怎么用python把缺失的行数补出来呢?
问到代码了,已解决。
import csv
#打开需要处理的csv文本,需要注意格式设置为utf-8
with open('final.csv', 'r',encoding='utf-8',) as f:
#指定新文件的保存路径
with open('new_final.csv', 'w',encoding='utf-8',) as new_f:
i = 0
reader = csv.reader(f)
is_first_row = True
writer = csv.writer(new_f)
for row in reader:
if is_first_row:
writer.writerow(row)
is_first_row = False
continue
while int(row[2]) != i:
writer.writerow("")
i = (i + 1) % 24
writer.writerow(row)
i = (i + 1) % 24
#注意,这里的row是从0开始,如csv第三列,row=2;第四列row=3,以此类推
麻烦问下 一年的数据是保存在一张表中?如果保存在一张表中这列数据是0-23循环还是逐一增加? 如果不是一张表 是分天保存还是分月保存?如果一月一个表 这列数据是0-23循环还是逐一增加?
之前碰到过类似的提问, 提供一个思路
1 用pandas生成一个日期+24小时的完整数据
2 用pd.merge() 将生成的数据和你的数据合并, 关键字就是日期和时间, 这样缺失的行就补齐了