python实现对文本数据的错误数据删除

1.以下数据格式第一列为时间,时间相同情况下,第二列数据需要递增,否则是错误的需要删除这一行数据
2.文本数据贴一部分:
16:28:34 3965 22 2 9
16:28:34 4165 22 1 8
16:28:34 4365 22 1 6
16:28:34 4568 22 2 9
16:28:34 4766 21 0 9
16:28:34 497 22 1 9
16:28:34 5166 22 1 9
16:28:34 5365 22 1 8
16:28:34 5565 23 0 9
16:28:34 5778 22 1 8
16:28:34 5965 22 2 9
16:28:34 6169 21 2 9
16:28:34 6365 21 1 9
16:28:34 657 21 1 9
16:28:34 6765 22 1 8
16:28:34 6966 22 2 9
16:28:34 7166 22 1 8
16:28:34 7365 22 1 9
3.我用列表方式读了这个数据,n行m列的列表
F1 = open(r"C:\Users\11816\Desktop\data_clear.txt", "r")
List_row = F1.readlines()
list_source = []
#x = len(List_row)-1;
#y = len(List_row[0].split("\t"))-1;
for i in range(len(List_row)):
column_list = List_row[i].strip().split("\t") # 每一行split后是一个列表
list_source.append(column_list) # 加入list_source
print(list_source)#二元组


1个回答

算法流程:逐行读取文本,符合要求打印,否则不打印,这样即可完成数据的过滤。
第一列时间的比较,如果格式符合 hh:mm:ss 的话直接用字符串比较即可。
代码如下:

# encoding=utf8
path = "1.txt"
f = open(path)
last_date = ""
last_num = 0
for line in f:
    line = line.rstrip()
    item = line.split(" ")
    date = item[0]
    num = float(item[1])
    if date > last_date:  # 直接比较即可,字符串比较原理
        last_date = date
        print(line)
    elif date == last_date:
        if num > last_num:
            last_num = num
            print(line)


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问