Python - 读取CSV文件发现有重复数据,如何清洗以及保存为CSV文件,这里有完整的过程!!!! 片尾有彩蛋
语言: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列表的数据
到此所有的工作也就做完了,下面我们看一下。效果图:

Python - 读取CSV文件发现有重复数据,如何清洗以及保存为CSV文件,这里有完整的过程!!!! 片尾有彩蛋的更多相关文章
- python 读取文本文档中的数据
import os dir = input('Please input the file dir:')#提示输入文件路径 while not os.path.exists(dir):#判断文件是否存在 ...
- python爬取豆瓣电影第一页数据and使用with open() as读写文件
# _*_ coding : utf-8 _*_ # @Time : 2021/11/2 9:58 # @Author : 秋泊酱 # @File : 获取豆瓣电影第一页 # @Project : 爬 ...
- python读取文本、配对、插入数据脚本
#在工作中遇见了一个处理数据的问题,纠结了很久,写下记录一下.#-*- coding:UTF-8 -*- #-*- author:ytxu -*- import codecs, os, sys, pl ...
- JXL 读取 Excel java中jxl导出数据到excel的例子 上传文件
2010-10-14 19:17:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 信息: Entferne Dat ...
- (17)Python读取摄像头并实现视频播放、暂停、指定目录保存、回放功能
读取摄像头并播放.暂停功能 import sys #import scipy.io as sio from PyQt5 import QtGui, QtCore, QtWidgets #from wy ...
- python读取数据库并把数据写入本地文件
一,介绍 上周用jmeter做性能测试时,接口B传入的参数需要依赖接口A生成的借贷申请ID,接口A运行完需要把生成的借贷申请ID导出来到一个文件,作为参数传给接口B,刚开始的时候,手动去数据库倒, 倒 ...
- python读取xml文件
关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...
- Python读取不同文件夹下的图片并且分类放到新创建的训练文件夹和标签文件夹
在深度学习的训练时,经常会碰到训练的样本数据集和标签数据集是在一个文件夹中,这个时候我们就不得不进行一些数据的预处理和文件的分类,例如将训练(training data)数据集和标签数据集(label ...
- MATLAB中文件的读写和数据的导入导出
http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...
- Excel常见操作,重复数据,去除数据关联
Eecel对一个数据进行操作后按住右下角的十字架往下拉就可以对下面的操作进行相同 的操作,所以只需先对一个数据进行操作,再拉下来就可以了 通过公式处理的数据跟其它数据有关联 需要对这些数据进行去除它们 ...
随机推荐
- Codeforces Round #879 (Div. 2) A-E
比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...
- 认识Dubbo与RPC
关注王有志,分享硬核Java技术的互金摸鱼侠 加入Java人的提桶跑路群:共同富裕的Java人 开个新坑,和大家一起学习Dubbo 3.X.我们按照一个由浅入深顺序来学习,先从使用Dubbo开始,再深 ...
- 如何使用 Terraform 和 Git 分支有效管理多环境?
作者|Sumeet Ninawe 翻译|Seal软件 链接|https://spacelift.io/blog/terraform-environments 通常我们使用 Terraform 将我们的 ...
- 超越.NET极限:我打造的高精度数值计算库
超越.NET极限:我打造的高精度数值计算库 还记得那一天,我大学刚毕业,紧张又兴奋地走进人生第一场.NET工作面试.我还清楚地记得那个房间的气氛,空调呼呼地吹着,面试官的表情严肃而深沉.我们进行了一番 ...
- 2021-7-12 VUE的过滤器使用
过滤器实例:转换首字母大写 <!DOCTYPE html> <html> <head> <title> </title> </head ...
- Linux 标准目录结构 FHS ——原文链接https://www.cnblogs.com/woider/p/6618295.html
因为利用 Linux 来开发产品或 distribution 的团队实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰.所以,后来就有了 Filesystem H ...
- 王道oj/problem10
地址:http://oj.lgwenda.com/problem/10 思路:首先创建字符串赋初值,其次用gets()输入字符串[fgets()相对于gets()会多识别"\n", ...
- 从javascript代码解析过程理解执行上下文与作用域提升
javascript代码解析过程 执行上下文和作用域是javascript中非常重要的部分,要弄清楚它们首先就要说到javascript的运行机制,javascript代码被解析经过了以下几个步骤 P ...
- 带你走进数仓大集群内幕丨详解关于作业hang及残留问题定位
本文分享自华为云社区<[带你走进DWS大集群内幕]大集群通信:作业hang.残留问题定位>,作者: 雨落天穹丶. 前言: 测试过程中,我们会遇到这样一种情况,我的作业都执行很久了,为啥还不 ...
- [db2]数据库管理
前言 db2版本:10.5 实例所有者:db2inst1 待新建数据库:ticm,授权用户:ticm/123456.(用户是系统用户) 创建数据库 建库 # create database ticm: ...