Python实现读取csv文件并进行排序

作者:wendy_ya 时间:2021-06-27 08:37:59 

从本文开始,本系列将介绍python简单案例并进行代码展示,本文的案例是利用pandas库实现读取csv文件并按照列的从小到大进行排序。

前言

CSV 是什么?

CSV 文件最开始可能有人会误认为是 Excel 的一种文件格式,包括我还没了解过 CSV 文件之前,也一直认为 CSV 格式的文件就是 Excel 保存后的另一种文件格式,下面就简单介绍一下 CSV 到底是什么。

CSV (Comma-Separated Values) 是一种相对简单、通用的文件格式,通常叫做逗号分隔值,也有人叫它字符分隔值,因为分隔字符不一定是逗号。其文件是以纯文本的形式存储表格数据,相当于一个结构化表的纯文本形式。

CSV 通常应用在程序之间转移数据场景下使用,因为 CSV 存储的格式通用且简单,适合转换为其它数据格式。比如将数据库中的数据导出存储为 CSV 文件,再将 CSV 数据文件导入到其它程序,这样就轻松实现了程序与程序之间的数据交换。

再比如,使用 Python 写爬虫程序爬取某网站上的数据时,最开始,网站上的数据往往都是比较杂乱的,将爬取到的数据存储到 CSV 文件中,可以很方便地查看数据、修改数据。

CSV 通常可以使用 Excel 打开查看,也可以使用 Wndows 记事本程序打开,你也可以使用如 Notepad++、 Sublime 等编辑器打开,阅读到此,是不是觉得 CSV 非常灵活、实用了。

一、案例描述

scalars.csv是一个三列若干行的文件。第一列为Wall time,表示无用数据;第二列为Step,绘图时用于横轴;第三列为Value,绘图时用于纵轴。
读取scalars.csv第三列元素(Value)进行从小到大排序并绘制图像。

二、代码讲解

首先导入相应的库:

import pandas as pd
import matplotlib.pyplot as plt

read_csv用于读取csv文件,header指定列标题,usecols指定读取第二列和第三列(第二列作为横,第三列作为纵)。

sort_values用于进行排序,by指定要排序的名称;axis指定要排序的轴,默认为0即按行排序;ascending指定升序排列还是降序排列,默认为True表示升序,False指定降序排列即按照从大到小进行排序。

# 对scalars.csv第三列元素进行从大到小排序并绘制图像
txt=pd.read_csv('scalars.csv',header=0,usecols=[1,2])
# 按Value排序,默认升序,ascending=False指定降序排列即按照从大到小进行排序
txt2=txt.sort_values(by=["Value"],ascending=False)

最后绘制排序前和排序后的图像。

# 创建画布
plt.figure(figsize=(10,6),dpi=100)
# 排序前的图像
plt.plot(txt['Step'],txt['Value'])
# 显示图形
plt.show()
# 排序后的图像
plt.plot(txt['Step'],txt2['Value'])
# 显示图形
plt.show()

三、完整代码

完整代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 对scalars.csv第三列元素进行从大到小排序并绘制图像
txt=pd.read_csv('scalars.csv',header=0,usecols=[1,2])
# 按Value排序,默认升序,ascending=False指定降序排列即按照从大到小进行排序
txt2=txt.sort_values(by=["Value"],ascending=True)

# 创建画布
plt.figure(figsize=(10,6),dpi=100)
# 排序前的图像
plt.plot(txt['Step'],txt['Value'])
# 显示图形
plt.show()
# 排序后的图像
plt.plot(txt['Step'],txt2['Value'])
# 显示图形
plt.show()

来源:https://blog.csdn.net/didi_ya/article/details/128955628

标签:Python,读取,csv
0
投稿

猜你喜欢

  • 轻松了解数据库计算机的概念和发展方向

    2009-01-23 13:55:00
  • ACCESS数据库转换MYSQL数据库的软件

    2007-09-20 20:06:00
  • laravel添加前台跳转成功页面示例

    2023-11-20 15:22:18
  • 几个SQL SERVER应用问题解答

    2008-01-01 19:12:00
  • Windows存储 SQL行溢出 差异备份及疑问

    2008-12-24 15:22:00
  • PDO::getAttribute讲解

    2023-06-06 02:58:22
  • Web 标准要求一览表

    2009-01-08 12:35:00
  • java.sql.SQLException: 内部错误: Unable to construct a Datum from the specified input

    2010-07-16 13:23:00
  • Bootstrap实现圆角、圆形头像和响应式图片

    2023-08-12 07:16:59
  • python中文文本切词Kmeans聚类

    2023-06-01 18:35:57
  • asp内置对象Application详解

    2007-09-19 12:08:00
  • CSS兼容性(IE和Firefox)技巧大全

    2010-07-29 12:29:00
  • 使用sp_xml_preparedocument处理XML文档的方法

    2011-09-30 11:56:15
  • Python验证码识别的方法

    2023-05-30 10:22:39
  • Python库skimage绘制二值图像代码实例

    2023-06-12 15:05:33
  • YUI Grids CSS 解读

    2008-05-28 12:49:00
  • python生成可执行exe控制Microsip自动填写号码并拨打功能

    2023-08-11 04:51:00
  • 有关JS中Event对象的几点总结

    2009-03-06 12:36:00
  • z-index在IE中的迷惑

    2007-05-11 16:50:00
  • Dreamweaver表格布局经验谈

    2007-02-03 11:39:00
  • asp之家 网络编程 m.aspxhome.com