在上一次学习中,我向大家展示了如何安装Jupyter笔记本,以及利用它来编写Python代码并立即执行的方法。今天,就让我们来挑战一下用Jupyter笔记本来读取CSV文件,并且可视化展示其内容的方法吧!

关于CSV文件

在日常工作中使用的许多数据,大部分是通过电子表格软件创建的。比如,我们通常会用Excel来管理销售数据,客户数据,库存数据等数据内容。

但是,当我们对这些用电子表格创建的数据进行编程时,就会发现读取和分析这些原始Excel文件的工作会变得非常麻烦。

为了能够更方便的操作Excel数据,我们有一个简便的方法,那就是先把Excel文件转化成CSV文件,然后用程序对CSV进行操作就可以了。大多数电子表格软件和数据库都支持以CSV格式导出数据。所以可以说CSV文件是一种用于处理电子表格数据再好不过的格式了。

首先,CSV数据格式如下。在这里,我们以某一支股票的交易数据为例。

在CSV中,每行记录一条记录。一条记录可以具有多个用逗号分隔的字段。如上表所示,第一行(第一列)通常用作标题。

这样,CSV数据就简单地由换行符和逗号分隔,因此,通过编程可以非常简单地对其进行操作,这是一个很大的优势。

使用Jupyter笔记本读取CSV文件

现在,就让我们将此CSV数据加载到Jupyter笔记本中。

将需要加载的CSV文件,复制到Jupyter启动目录中。

jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_Python

将CSV文件复制到Jupyter的启动目录

启动Jupyter Notebook

要启动Jupyter,请先启动命令行。从开始菜单运行“ Anaconda3> Anaconda Prompt”。然后输入以下Jupyter Notebook启动命令:

jupyter notebook

Web浏览器启动后,点击屏幕右上方的“New”按钮,并选择“ Python3”,新建一个笔记本。


jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_Jupyter_02

当Jupyter笔记本启动时,让我们从右上方的New开始

通过编写以下两行代码,您可以读取CSV文件并将其以表格形式显示在屏幕上。上次也介绍过了它使用一个名为Pandas的库来支持数据分析。

import pandas as pd
 pd.read_csv("stock.csv", encoding="GB2312")


jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_Python_03

显示导入的CSV数据

上图中,此CSV以日期的降序排列,让我们试着升序排列和显示。要排序,只需使用sort_values方法。

import pandas as pd
 pd.read_csv("stock.csv", encoding="GB2312")
 df.sort_values(by=["成交笔数"], ascending=True)


jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_CSV_04

使用Jupyter,您只需要编写两行代码就可以获取格式化后的表格。

该程序读取CSV文件,并使用sort_values方法输出排序后的文件。这样,可以说Python很有吸引力,因为它可以非常简单地描述。顺便说一下,如果升序= True的部分改写为升序= False,则它将按总体的降序排列(即降序)。

绘制条形图

接下来,让我们基于CSV文件绘制一个条形图。

 

从CSV文件中提取数据并编写条形图很容易。下面是一个程序,以2016年为Y轴绘制条形图。

%matplotlib inline
import pandas as pd
df = pd.read_csv("stock.csv", encoding="GB2312")
df.plot.bar(y=['成交笔数'])


jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_Jupyter_05

成交笔数条形图

为了在Jupyter中绘制图形,我们需要在代码前面加上“%matplotlib inline”。然后要编写条形图,只需调用plot.bar方法即可。另外,像这个例子一样,CSV中有很多列的时候,只需要指定将哪一列用作Y轴即可。

如果想同时显示成交笔数和流通市值的条形图的话,则可以写成下面这样:会自动显示不同颜色。

%matplotlib inline
import pandas as pd
df = pd.read_csv("stock.csv", encoding="GB2312")
df.plot.bar(y=['成交笔数','流通市值'])


jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_图表_06

同时显示成交笔数和流通市值时的条形图

 

关于中文显示乱码问题

从上面的图中可以看到,由于没有制定绘图时的中文字体,图中的中文部分显示成了乱码“□”。

为了解决中文的乱码问题,可以采取以下两种方式:

解决方式一:

用下面的代码获取配置文件matplotlibrc所在路径

import matplotlib
#1. 获取matplotlibrc文件所在路径
matplotlib.matplotlib_fname()

修改此配置文件,一劳永逸,不用在每个脚本中写代码解决中文显示问题

font.family         : Microsoft YaHei
axes.unicode_minus  : False

解决方式二:

在python脚本中增加配置支持中文的代码:其实本质上讲还是和方式一一样的。

from pylab import mpl
mpl.rcParams['font.family'] = ['Microsoft YaHei']    # 指定默认字体:解决plot不能显示中文问题
mpl.rcParams['axes.unicode_minus'] = False           # 解决保存图像是负号'-'显示为方块的问题

然后,再次执行该程序时,中文内容将正确显示。


jupyter notebook数据可视化哔哩哔哩 jupyter excel可视化_从零开始学Python_07

Jupyter笔记本中正确显示中文

如上所述,今天,我们创建了一个程序,该程序使用Jupyter笔记本读取CSV文件,并以表格或者图形的方式进行表示。从今天介绍的内容大家可以看到使用Jupyter笔记本可以非常轻松地将CSV文件的内容进行可视化。