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

从本文开始,本系列将介绍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