python读取csv表格画散点图(python读取csv数据并画图)

http://www.itjxue.com  2023-03-26 22:02  来源:未知  点击次数: 

怎么用python读取csv数据

csv是我接触的比较早的一种文件,比较好的是这种文件既能够以电子表格的形式查看又能够以文本的形式查看。最早接触是在别人的Perl脚本中,或许是为了充分利用Perl的文本处理能力。不过,日常的生活工作中我用到的比较多的倒还是电子表格。

创建一个电子表格如下:

使用Mac中Numbers功能将其导出为csv文件,使用文本查看文件内容如下:

GreydeMac-mini:chapter06 greyzhang$ cat data.csv

index,name,comment,,,,

1,name_01,coment_01,,,,

2,name_02,coment_02,,,,

3,name_03,coment_03,,,,

4,name_04,coment_04,,,,

5,name_05,coment_05,,,,

6,name_06,coment_06,,,,

7,name_07,coment_07,,,,

8,name_08,coment_08,,,,

9,name_09,coment_09,,,,

10,name_10,coment_10,,,,

11,name_11,coment_11,,,,

12,name_12,coment_12,,,,

13,name_13,coment_13,,,,

14,name_14,coment_14,,,,

15,name_15,coment_15,,,,

16,name_16,coment_16,,,,

17,name_17,coment_17,,,,

18,name_18,coment_18,,,,

19,name_19,coment_19,,,,

20,name_20,coment_20,,,,

21,name_21,coment_21,,,,

换用pandas尝试数据文件读取如下:

In [1]:?import?pandas?as?pd

In [2]:?ls

data.csv? ? ? data.numbers

In [3]:?data = pd.read_csv('data.csv')

In [4]:?data

Out[4]:

index ? ? name? ? comment? Unnamed: 3? Unnamed: 4? Unnamed: 5? Unnamed: 6

0 ? ? ? 1? name_01? coment_01 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

1 ? ? ? 2? name_02? coment_02 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

2 ? ? ? 3? name_03? coment_03 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

3 ? ? ? 4? name_04? coment_04 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

4 ? ? ? 5? name_05? coment_05 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

5 ? ? ? 6? name_06? coment_06 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

6 ? ? ? 7? name_07? coment_07 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

7 ? ? ? 8? name_08? coment_08 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

8 ? ? ? 9? name_09? coment_09 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

9? ? ? 10? name_10? coment_10 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

10 ? ? 11? name_11? coment_11 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

11 ? ? 12? name_12? coment_12 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

12 ? ? 13? name_13? coment_13 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

13 ? ? 14? name_14? coment_14 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

14 ? ? 15? name_15? coment_15 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

15 ? ? 16? name_16? coment_16 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

16 ? ? 17? name_17? coment_17 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

17 ? ? 18? name_18? coment_18 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

18 ? ? 19? name_19? coment_19 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

19 ? ? 20? name_20? coment_20 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

20 ? ? 21? name_21? coment_21 ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN ? ? ? ? NaN

查看读取出来的结果,看的出结果被处理成了pandas的DataFrame格式。

In [6]: type(data)

Out[6]:?pandas.core.frame.DataFrame

python导入csv并利用其中数据画图

昨天手机看的,没看到你发的表格,抱歉。给你写个简单的。

import pandas

import matplotlib.pyplot as plt

# sep这是是分割符,具体看你自己的文件分割是用什么,usecoles是取a,b,c三列

a_b_c = pandas.read_csv("这里写你的文件地址", sep="\t", usecols=[1,2,3])

# 取c在3000到10000的行

a = a_b_c[(a_b_c['c']=3000) (a_b_c['c']=10000)]

a_col = a["a"]

b_col = a["b"]

plt.scatter(a_col, b_col)

plt.show()

流程大概是这样,具体需要细化的地方看官方文档或者百度查询。

python 批量处理csv数据,并进行数据分析,绘制基本散点图

用os模块得到目录下的所有csv文件,然后将已经处理过的csv文件名存到一个文件中,每次得到目录下所有csv文件名列表,如果不在已经处理的csv文件名列表中,则使用你的方法将数据提取出来,并将相应的csv文件名加入到 已经处理的csv文件名列表中。

如何用python 读写 csv

csv文件就是按逗号分隔的文本, 可以用python自带的读取文本的方式, 不过我推荐用pandas包, 读写都很方便

#?coding=utf-8

#?传统方式

#?读

f1?=?open('1.csv',?'r').readlines()

result?=?map(lambda?x:?x.strip().split(','),?f)

#?写

f2?=?open('1.csv',?'w')

f2.write('what?you?want?to?write')

#?pandas方法

import?pandas?as?pd

#?读

result?=?pd.read_csv('1.csv')??#?result被转化为DataFrame对象

#?写

#?写的时候可以操作result这个DataFrame对象,?类似excel的表格,?十分方便

result[0,?0]=1

result.to_csv('2.csv')??#?将修改后的DataFrame保存为一个新的csv或者你想替换1.csv也可以

粗略介绍了一点, 如果有不懂的, 请追问.

说说如何利用 Python 处理 CSV 文件

CSV 表示 “Comma-Separated Values (逗号分隔的值) ” , CSV 文件是简化的电子表格,实际为纯文本文件。

一个 CSV 文件,格式是这样的:

因为 CSV 文件中的每个单元格都是以逗号分割,所以也许有人会对每行文本调用 split() 方法,来解析 CSV 文件。但 CSV 文件也有自己的转义字符,通过转义字符,允许逗号和其他字符作为值的一部分,但单纯使用 split() 方法不能处理这些转义字符。因为这些潜在的缺陷,所以建议总是使用 csv 模块来读写 CSV 文件。

csv 模块是 Python 自带的,所以可以直接导入。

要使用 csv 模块从 CSV 文件中读取数据,我们需要创建一个 Reader 对象。 通过 Reader 对象,我们可以迭代遍历 CSV 文件中的每一行内容。

运行结果:

要用 csv 模块读取 CSV 文件,首先先使用 open() 函数打开它 ,就像打开任何其他文本文件一样。然后将它传递给 csv .reader() 函数。 这个函数将返回一个 Reader 对象。注意,csv .reader() 函数不接受文件名作为入参。

要访问 Reader 对象中的值,最直接的方法,就是利用 list() 将它转换成一个普通 Python 列表。它实际为一个包含列表的列表,用于表示二维数据。

我们还可以使用表达式 data [ row ][ col ] 来访问 CSV 中特定行和列的值。其中, row 是 data 中一个列表的下标, col 是该列表中,我们想访问的项的下标:

运行结果:

运行结果:

Writer 对象可以让我们把数据写入 CSV 文件。

运行结果:

在 Windows 上,需要为 open() 函数的 newline 关键字参数传入一个空字符串。如果没有设置 newline 参数, output.csv 中的行距将变为两倍,如下图所示。

如果写入的内容包含逗号,那么 csv 模块会自动加上双引号,对其进行转义,如下例所示。

运行结果:

我们也可以利用 delimiter ,来制作 TSV 文件,TSV 是Tab-separated values的缩写,即以制表符作为分隔符的文件;利用 lineterminator 参数来设定行距。

运行结果:

这里利用 lineterminator='\n\n\n' 将行与行之间的字符变为三个换行符,效果就是实现了 3 倍行距。

怎样用python对csv的一行数据进行画图。

不知道你的一行数据是怎样的,或者说想画什么图。如果说一行数据都是数字,你可以用matplotlib去画,一般画图都需要x轴y轴两种,你可以把你的那一行数据作为y轴,x轴用0到n ,n是数据长度。

(责任编辑:IT教学网)

更多

推荐通讯数据软件文章