语言:Python
功能:
1、清洗CSV文件中重复数据。
2、保存为CSV文件
大体流程:
1、首先观察CSV文件中的数据布局格式如何?
2、通过csv包读取数据。并根据规则使用continue,来跳过本次循环,并将所需数据保存到列表A中,当列表A中的数据变成len(列表A) == 2时,将此数据保存到列表B中。同时将列表A = []
3、采用csv.writer(file).writerows(列表B) 保存为CSV文件。
PS:1、保存为CSV文件时,出现:UnicodeEncodeError: 'gbk' codec can't encode character '\ufeff' in position 0: illegal multibyte sequence 错误。在with open().加入encoding='UTF-8'。2、保存的csv文件会出现一行行的空白,所以需要在with open().加入newline = ''。
首先通过查看CSV文件发现数据格式如下所示:
发现,重复数据格式:每两行是一样的。也就是说数据四行为一个循环。所以当我们想要读取数据的时候,可以采用“三”作为循环的标志。这里读者获取以四为循环中的第一、二条数据。py文件的代码如下所示:
# 使用CSV读取文件 import csv import json filename = 'Resource_DataSet.csv' list_Theme = [] list_Body = [] with open(filename,"r",encoding='UTF-8') as csvfile: csvreader = csv.reader(csvfile,) ijk = 1 ijkl = 2 # 遍历读到的每一行数据 for row in csvreader: if(ijk == 1): # print(row) list_Theme.append(str(row[0])) ijk = 3 continue if(ijkl == 2): list_Theme.append(str(row[0])) ijkl = 4 continue if (len(list_Theme)==2): list_Body.append(list_Theme) list_Theme = [] ijk = ijk -1 ijkl = ijkl -1 # list_Body.append(list_Theme) # print(list_Theme) # list_Theme = [] print(len(list_Theme)) print(len(list_Body))
接下来将读取在list列表中的数据读到csv文件中。这个要点在上面展示了。Python代码如下所示:
with open("data_middle.csv", "w",newline='',encoding='UTF-8') as file: writer = csv.writer(file) writer.writerows(list_Body) # 这里的;list_Body是前面Python代码对应存储list列表的数据
到此所有的工作也就做完了,下面我们看一下。效果图:
标签:Body,文件,csv,Python,list,Theme,CSV From: https://www.cnblogs.com/kuangmeng/p/17721109.html