1、csv文件简介

CSV文件是一种常见的文本文件格式,全称为Comma-Separated Values(逗号分隔值)。
它被广泛用于存储表格数据,如电子表格和数据库中的数据。

CSV文件的结构非常简单,每行表示数据中的一行,每个字段之间使用特定的分隔符(通常是逗号)进行分隔。

每行的字段数量应相同,以便正确解析数据。通常,第一行是字段名,用于标识每个字段的含义。

以下是一个示例CSV文件(data.csv,下文会用到)的内容:

1 Name,Age,Email
2 John,25,john@example.com
3 Emma,32,emma@example.com

在上面的示例中,第一行指定了三个字段的名称:Name、Age和Email。接下来的两行分别是具体的数据行,每个字段由逗号进行分隔。

CSV文件的优点是它的简单性和易读性。它可以被多个应用程序和编程语言轻松解析和处理。Python提供了许多库(如csv模块)来读取和写入CSV文件,能够轻松地处理和操作其中的数据。

2、读取CSV文件

 1 import csv
2
3 with open('data.csv', 'r') as file:
4 reader = csv.reader(file)
5 for row in reader:
6 print(row)
7
8 """终端输出结果:
9 ['Name', 'Age', 'Email']
10 ['John', '25', 'john@example.com']
11 ['Emma', '32', 'emma@example.com']
12 """

上述代码将打开名为"data.csv"的CSV文件,并使用csv.reader函数创建一个阅读器对象。然后,通过循环迭代阅读器对象,逐行读取CSV文件的内容并进行处理。

如果CSV文件的第一行是标题行,可以使用next()函数跳过标题行,然后处理数据行:

 1 import csv
2
3 with open('data.csv', 'r') as file:
4 reader = csv.reader(file)
5 headers = next(reader) # 跳过标题行
6 print(f"headers:{headers}\n--------------------------------")
7 for row in reader:
8 print(row)
9
10 """终端输出结果:
11 headers:['Name', 'Age', 'Email']
12 --------------------------------
13 ['John', '25', 'john@example.com']
14 ['Emma', '32', 'emma@example.com']
15 """

3、写入CSV文件

 1 import csv
2
3 data2 = [
4 ['Name', 'Age', 'Email'],
5 ['Jobs', '20', 'jobs@example.com'],
6 ['cook', '35', 'cook@example.com']
7 ]
8
9 with open('data2.csv', 'w', newline='') as file:
10 writer = csv.writer(file)
11 writer.writerows(data2)

上述代码将创建一个名为"data2.csv"的CSV文件,并使用csv.writer函数创建一个写入器对象。

然后,使用writerows()方法将数据写入CSV文件。

注意,在打开文件时,我们将newline=''传递给open()函数,这是为了避免在Windows系统上出现额外的空行。

4、使用pandas读入csv文件

import pandas as pd

读取csv文件数据

读取train.csv数据:

train_df = pd.read_csv(r'C:\Users\86177\Desktop\experiment\train.csv')

查看数据信息

 print(train_df)

查看前五个数据

print(train_df.head())

查看是否有空值

train_df.isnull( ).any( 

5、处理csv文件中的缺失值和特殊字符

当读取csv文件时,我们有时会遇到一些缺失值或者特殊字符。为了防止出现数据错误,我们需要对这些问题进行处理。

1、处理缺失值:

在csv文件中,缺失值通常用NaN或者空格表示。在Python中,我们可以使用Pandas库的read_csv()函数读取csv文件,并使用dropna()函数删除含有缺失值的行:

1 import pandas as pd
2
3 df = pd.read_csv('example.csv')
4 df.dropna(inplace=True)

2、处理特殊字符:

在csv文件中,有些特殊字符可能会打乱数据结构,影响后续的数据处理和分析。在Python中,我们可以使用csv模块的quotechar和quoting参数来处理特殊字符。

1 import csv
2
3 with open('example.csv', 'r') as csvfile:
4 reader = csv.reader(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
5 for row in reader:
6 print(row)

上述代码中,我们使用quotechar='"'指定了csv文件中的引号符为双引号,使用quoting参数指定了csv.QUOTE_MINIMAL,表示尽可能保留原有数据结构。

python中csv文件操作总结的更多相关文章

  1. 解决python中csv文件中文写入问题

    一.前言 一般来说,为了方便,使用python的时候都会使用csv模块去写数据到csv文件,但是写入中文的时候,经常会报错: UnicodeEncodeError: 'ascii' codec can ...

  2. 关于Python中的文件操作(转)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  3. python学习之【第十一篇】:Python中的文件操作

    1.前言 在Python中,对文件的操作主要遵循以下流程: 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 2.打开文件 使用open函数,可以打开一个已经存在的文件,或 ...

  4. 【Python】解析Python中的文件操作

    目录结构: contents structure [-] 简介 Python中的文件类型 内置函数的文件操作 open()函数 Mode 创建文本文件 读取文本文件 循环文件对象 关闭文件 With语 ...

  5. 使用Python对Csv文件操作

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,mayi, ...

  6. 说说Python 中的文件操作 和 目录操作

    我们知道,文件名.目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名.目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfi ...

  7. python中csv文件的读取问题

    在python读取csv格式的文件时,使用csv.reader读取文件对象,出现了line contains NULL byte的错误,如下: reader = csv.reader(open(fil ...

  8. 2018.8.6 Python中的文件操作

    前言: 使用python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄.然后通过文件句柄就可以进行各种操作了,根据打开方式的不同能够执行的操作也会有相应的差异. 打 ...

  9. Python 中关于文件操作的注意事项

    文件操作 #打开文件 f = open('要打开的文件路径',mode = 'r/w/a', encoding = '文件原来写入时的编码') #操作 data = f.read() #读取 f.wr ...

  10. [19/10/16-星期四] Python中的文件操作

    一.打开文件 # open(file, mode='r', buffering=-1, encoding_=None, errors=None, newline=None, closefd=True, ...

随机推荐

  1. Gin?有这一篇就够了!

    Gin Gin是Golang的一个后端框架,封装比较优雅,API友好. go get -u github.com/gin-gonic/gin 1.hello word package main imp ...

  2. ChatMoney能根据剪纸来进行AI绘画,你见过吗?

    本文由 ChatMoney团队出品 剪纸,听起来就很有画面感,承载着中国几千年的文化.一把剪刀.一张红纸,轻轻剪几剪,就能幻化出各种栩栩如生的图案.这门艺术不仅仅是视觉上的享受,更是一种感情的传递,一 ...

  3. 阿里微服务解决方案-Alibaba Cloud之集成Nacos(服务注册与发现)(三)

    一.集成 Nacos(服务注册与发现) 1.1 下载 Nacos Nacos下载地址 1.2 下载后解压到本地 1.3 启动 Nacos 启动成功界面 输入 http://127.0.0.1:8848 ...

  4. 数栈技术分享前端篇:TS,看你哪里逃~

    数栈是-站式大数据开发平台,我们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,也可以采集实时变化的数据 ...

  5. pytorch入门 - 基于AlexNet神经网络实现猫狗大战

    基于之前的博客 pytorch入门 - AlexNet神经网络,并借助Kaggle 的 Dogs vs Cats Redux 数据集,实现一个基于 AlexNet 的二分类模型识别猫与狗. 完整流程涵 ...

  6. 东方财富服务端开发暑期实习面试,已拿offer!!

    这是一位球友投稿的东方财富服务端开发暑期实习面经,问的内容还是比较多的,难度也相对比较大.下面是正文. 最近参与了东方财富服务端开发暑期实习的招聘,并最终收获了 Offer.整个过程持续了大约一周,从 ...

  7. 视频音频对嘴--Wav2Lip

    之前介绍了将图片加音频进行对嘴处理,生成新的视频:基础版: https://www.cnblogs.com/cj8988/p/18952604 进阶版(加表情) :https://www.cnblog ...

  8. Oracle中复杂数据处理

    利用聚合函数统计数据 求最大值-max() max()可应用数值型和字符型和日期型(实质也是数值型) select max(employee_age) max_age from employees m ...

  9. 隐藏 Download the React DevTools for a better

    启动react项目的时候,一直给我推荐他家的开发工具: 'Download the React DevTools for a better development experience: https: ...

  10. Atcoders [AGC014D] Black and White Tree 题解

    AT_agc014_d [AGC014D] Black and White Tree 我们充分发扬人类智慧. 不难发现如果树根确定的情况下,先手会从叶子的父亲开始填,如果填到某两棵子树的白点中刚好是同 ...