查看原文
其他

国外大神制作的超棒 Pandas 可视化教程

The following article is from 极客猴 Author 极客猴

(给Python开发者加星标,提升Python技能

作者:Jay Alammar,编译:极客猴

如果读者们计划学习数据分析、机器学习、或者用 Python 做数据科学的研究,你会经常接触到 Pandas 库。Pandas 是一个开源、能用于数据操作和分析的 Python 库。


1.加载数据


加载数据最方便、最简单的办法是我们能一次性把表格(CSV 文件或者 EXCEL 文件)导入。然后我们能用多种方式对它们进行切片和裁剪。


Pandas 可以说是我们加载数据的完美选择。Pandas 不仅允许我们加载电子表格,而且支持对加载内容进行预处理。


Pandas 有个核心类型叫 DataFrame。DataFrame 是表格型的数据结构。因此,我们可以将其当做表格。DataFrame 是以表格类似展示,而且还包含行标签、列标签。另外,每列可以是不同的值类型(数值、字符串、布尔型等)。


我们可以使用 read_csv() 来加载 CSV 文件。

# 加载音乐流媒体服务的 CSV 文件
df = pandas.read_csv('music.csv')

其中变量 DF 是 Pandas 的 DataFrame 类型。


Pandas 同样支持操作 Excel 文件,使用 read_excel() 接口能从 EXCEL 文件中读取数据。


2.选择数据


我们能使用列标签来选择列数据。比如,我们想获取 Artist 所在的整列数据, 可以将 artists 当做下标来获取。


同样,我们可以使用行标签来获取一列或者多列数据。表格中的下标是数字,比如我们想获取第 1、2 行数据,可以使用 df[1:3] 来拿到数据。


Pandas 的利器之一是索引和数据选择器。我们可以随意搭配列标签和行标签来进行切片,从而得到我们所需要的数据。比如,我们想得到第 1, 2, 3 行的 Artist 列数据。

import pandas as pd

df.loc[1:3, ['Artist']]
# loc(这里会包含两个边界的行号所在的值)



3.过滤数据


过滤数据是最有趣的操作。我们可以通过使用特定行的值轻松筛选出行。比如我们想获取音乐类型(Genre)为值为 Jazz 行。


再比如获取超过 180万听众的 艺术家。


4.处理空值


数据集来源渠道不同,可能会出现空值的情况。我们需要数据集进行预处理时。


如果想看下数据集有哪些值是空值,可以使用 isnull() 函数来判断

import pandas as pd

df = pd.read_csv('music.csv')
print(df.isnull())

假设我们之前的音乐数据集中 有空值(NaN)的行。




我们对之前的音乐.csv 文件进行判断,得到结果如下:



如果我想知道哪列存在空值,可以使用 df.isnull().any()

import pandas as pd

df = pd.read_csv('music.csv')
print(df.isnull().any())

结果如下:




处理空值,Pandas 库提供很多方式。最简单的办法就是删除空值的行。



除此之外,还可以使用取其他数值的平均值,使用出现频率高的值进行填充缺失值。

import pandas as pd

# 将值填充为 0
pd.fillna(0)

5.分组


我们使用特定条件进行分组并聚它们的数据,也是很有意思的操作。比如,我们需要将数据集以音乐类型进行分组,以便我们能更加方便、清晰了解每个音乐类型有多少听众和播放量。



上述代码的的执行过程是:Pandas 会将 Jazz 音乐类型的两行数据聚合一组;我们调用了 sum() 函数,Pandas  还会将这两行数据端的 Listeners(听众)和 Plays (播放量) 相加在一起,然后组合在 Jazz 列中显示总和。


这也是 Pandas 库强大之处,能将多个操作进行组合,然后显示最终结果。


6.从现有列中创建新列


通常在数据分析过程中,我们发现自己需要从现有列中创建新列,使用 Pandas 也是能轻而易举搞定。



推荐阅读  点击标题可跳转

别找了,这是 Pandas 最详细教程了

Pandas 可视化综合指南:手把手从零教你绘制数据图表

Python 数据处理库 pandas 入门教程



觉得本文对你有帮助?请分享给更多人

关注「Python开发者」加星标,提升Python技能

好文章,我在看❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存