Python_smallbai
2021-05-11 16:49
采纳率: 100%
浏览 141
已结题

用python处理excel缺失行,如何实现寻找缺失小时行并循环插入空白行?

如图所示,下载到的数据中,经常出现小时值缺失的情况,为了保障求每天O3-8h最大值,需要在12和14之间插入一个空行(如果每天都有24行,后面用excel求最大值就可以直接拖出来了),但是一年数据量非常大,肉眼看不太现实,怎么用python把缺失的行数补出来呢?

  • 收藏

3条回答 默认 最新

  • Python_smallbai 2021-05-13 11:47
    已采纳

    问到代码了,已解决。

    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,以此类推
    打赏 评论
  • 冷寒越 2021-05-11 19:45

    麻烦问下  一年的数据是保存在一张表中?如果保存在一张表中这列数据是0-23循环还是逐一增加?    如果不是一张表  是分天保存还是分月保存?如果一月一个表    这列数据是0-23循环还是逐一增加?

    1 打赏 评论
  • 之前碰到过类似的提问, 提供一个思路

    1 用pandas生成一个日期+24小时的完整数据

    2 用pd.merge() 将生成的数据和你的数据合并, 关键字就是日期和时间, 这样缺失的行就补齐了

     

    1 打赏 评论

相关推荐 更多相似问题