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对一个数据进行操作后按住右下角的十字架往下拉就可以对下面的操作进行相同 的操作,所以只需先对一个数据进行操作,再拉下来就可以了 通过公式处理的数据跟其它数据有关联 需要对这些数据进行去除它们 ...
随机推荐
- IDEA的安装准备
IDEA的安装 第一步 第二步 第三部 第四步
- TheTransformerPlaybookforNLPandLanguageUnderstanding
目录 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.1.1 准备工作:环境配置与依赖安装 3.1.2 核心模块实现 ...
- [渗透测试]—7.1 漏洞利用开发和Shellcode编写
在本章节中,我们将学习漏洞利用开发和Shellcode编写的基本概念和技巧.我们会尽量详细.通俗易懂地讲解,并提供尽可能多的实例. 7.1 漏洞利用开发 漏洞利用开发是渗透测试中的高级技能.当你发现一 ...
- 「Python实用秘技15」pandas中基于范围条件进行表连接
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第15 ...
- ENVI大气校正方法反演Landsat 7地表温度
本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以大气校正方法的地表温度反演操作. 目录 1 图像前期处理与本文理论部分 2 实际操作 2.1 植被覆盖度计算 2.2 地表比辐射率计算 2 ...
- linux程序开机自动运行-未解决
愚认为,本质上就是把程序放在etc文件目录下,让系统开机时,把程序一起编译运行了.orz 首先可以写个shell脚本如下: #!/bin/bash # 定义需要按顺序启动的 Python 程序列表 P ...
- 行行AI人才直播第13期:刘红林律师《AIGC创业者4大法律问题需注意》
行行AI人才(海南行行智能科技有限公司)是博客园和顺顺智慧共同运营的AI行业人才全生命周期服务平台. AIGC爆火至今,商业落地已成为各行各业焦点的问题.它的广泛应用也带来了一系列的法律风险和挑战.一 ...
- Lite-Mono(CVPR2023)论文解读
Lite-Mono: A Lightweight CNN and Transformer Architecture for Self-Supervised Monocular Depth Estima ...
- 2022-1-10 WPF基础知识点温习
一.window Icon :允许自定义窗口图标 ResizeMode:调整控制大小,默认为CanResize. CanMinimize允许用户最小化窗口. NoResize没有格式. ShowIn ...
- 图像阈值_有cv2.threshold,cv2.adaptiveThreshold 等。
1.简单阈值 使用的函数:cv2.threshold (src, thresh, maxval, type) 注释: 与名字一样,这种方法非常简单.但像素值高于阈值时,我们给这个像素赋予一个新值(可能 ...