首页 > 编程语言 >Python - 读取CSV文件发现有重复数据,如何清洗以及保存为CSV文件,这里有完整的过程!!!! 片尾有彩蛋

Python - 读取CSV文件发现有重复数据,如何清洗以及保存为CSV文件,这里有完整的过程!!!! 片尾有彩蛋

时间:2023-09-21 22:48:18浏览次数:46  
标签:Body 文件 csv Python list Theme 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列表的数据

  到此所有的工作也就做完了,下面我们看一下。效果图:

标签:Body,文件,csv,Python,list,Theme,CSV
From: https://www.cnblogs.com/kuangmeng/p/17721109.html

相关文章

  • Python中numpy出现has no attribute '_no_nep50_warning'错误怎么办?
      本文介绍在Python中,numpy库出现报错module'numpy'hasnoattribute'_no_nep50_warning'的解决方法。  一次,在运行一个Python代码时,发现出现报错module'numpy'hasnoattribute'_no_nep50_warning',如下图所示。  其中,这一代码本来在Windows平台下运行是没有问题的,......
  • 第二章 文件管理
    1.文件目录与路径1.1文件目录1.1.1  根目录:/1.1.2默认颜色:蓝色表示目录,绿色表示可执行文件,浅蓝色表示链接文件,红色表示压缩文件,黄色表示设备文件等。这些颜色是Linux系统默认的颜色,用户可以根据自己的喜好进行修改。1.1.3根目录下常见的目录:1.2文件路径1.2.1 绝对......
  • 编译 OpenCV 的 Python 依赖
    这一次编译OpenCV的Python依赖为了方便运行我们使用Docker进行编译,环境准备如下:系统依赖:Ubuntu18.04Python版本:3.6,Ubuntu18.04官方源安装的默认版本OpenCV版本:3.4.16,是目前3.x的最新版CMake版本:3.10GCC版本(含C++):7.5我们首先拉取并进入镜像:dock......
  • 20230921-python的get请求和post请求区别
    1.。get请求  2。post请求   ......
  • python+playwright 学习-81 page.expect_request()捕获网络请求
    前言page.expect_request()可以捕获网页上发出去的请求,当有多个请求时,可以根据请求url,请求方式判断。expect_request官方文档示例withpage.expect_request("http://example.com/resource")asfirst:page.get_by_text("triggerrequest").click()first_request=firs......
  • window和linux下有关xxx.dll和xxx.so动态库,可执行文件运行时的动态库检索路径文档
    没想到详细的内容都在库和命令的man手册中。ld.so动态库手册里有描述ELF可执行文件在运行时,都会在哪几个位置检索动态库。如果共享对象依赖项不包含斜杠,则它按以下顺序搜索:(1)使用二进制文件的DT_RPATH动态节属性中指定的目录(如果存在且DT_RUNPATH属性不存在)。不推荐......
  • python: Essential Algorithms
     #encoding:utf-8#版权所有2023涂聚文有限公司#许可信息查看:#描述:#Author:geovindu,GeovinDu涂聚文.#IDE:PyCharm2023.1python311#Datetime:2023/9/2121:28#User:geovindu#Product:PyCharm#Project:EssentialAlgor......
  • Python 内置数据类型详解
    内置数据类型在编程中,数据类型是一个重要的概念。变量可以存储不同类型的数据,不同类型可以执行不同的操作。Python默认内置了以下这些数据类型,分为以下几类:文本类型:str数值类型:int、float、complex序列类型:list、tuple、range映射类型:dict集合类型:set、frozenset布尔类型......
  • 【C#】【Python】【实例】统计多个文件夹下的图片
    因工作需要繁琐的进行同一目录多个文件夹下的图片统计,便使用代码来解决。需求:统计的是多少个文件夹包含了图片,并非是统计有多少张图。 我们先用Python来创建一个现场环境(巩固巩固py知识):1importos23#根目录4root_path=r"C:\Users\Desktop\1111"56forit......
  • 在不用插件和断网的情况下怎么实现编译python?
    要在不使用插件和断网的情况下编译Python代码,您通常不需要进行编译,因为Python是一种解释型语言,它将代码逐行执行而不需要显式编译过程。然而,如果您希望将Python代码打包成一个独立的可执行文件以便于分发,您可以使用一些第三方工具,如PyInstaller、cx_Freeze或Py2exe,但这些工具在没有......