40

[译] pandas 指南:做更高效的数据科学家

 5 years ago
source link: https://mp.weixin.qq.com/s/28qzsC2wjBIYYwza3lC0Aw?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

云栖君导读:Python是开源的,所以有很多开源固有的问题。如果你是Python新手,很难知道针对特定任务的包哪个是最好的。你需要有经验的人来告诉你。今天我要告诉你们的是:在数据科学中,有一个软件包是你们需要学习的,那就是pandas。

7nEbAjB.jpg!web

而pandas真正有趣的地方是,很多其他的包也在里面。pandas是一个核心包,因此它具有来自其他各种包的特性。

pandas类似于Python中的Excel:它使用表(即DataFrame)并对数据进行转换,但它还能做更多。

如果你已经熟悉Python,可以直接进入第三部分。

现在让我们开始:

pandas包最基本的功能

1、读取数据:

AfmUZnb.png!web

sep变量代表分隔符。因为Excel中的csv分隔符是“;”,因此需要显示它。编码设置为“latin-1”以读取法语字符。nrows=1000表示读取前1000行。skiprows=[2,5]表示在读取文件时将删除第2行和第5行

最常用的函数:read_csv, read_excel

还有一些很不错的函数:read_clipboard、read_sql

2、写入数据

index=None将简单地按原样写入数据。如果你不写index=None,会得到额外的行。

我通常不使用其他函数,比如to_excel,to_json,to_pickle,to_csv,虽然它们也做得很好,但是csv是保存表最常用的方法。

3、检查数据:

eqQzmuR.png!web

.head(3)打印数据的前3行,.tail()函数将查看数据的最后一行。

打印第8行。

将第8行值打印在“column_1”上。

打印第4行到第6行。

pandas的初级功能

1、逻辑运算

nIZBrmj.png!web

如果要根据逻辑操作对数据进行运算,在使用& (AND)、~ (NOT)和| (OR)等逻辑操作之前和之后添加“(”&“)”。

不要为同一列编写多个OR,最好是使用.isin()函数。

2、基本绘图

多亏了matplotlib包,这个特性才得以实现。就像我们在介绍中说的,它可以直接用在pandas身上。

rAnyquZ.png!web

图 1 .plot() 输出示例

绘制分布图(直方图)

jeQZVvI.png!web

图 2 .hist() 函数输出示例

如果你使用Jupyter,在绘图之前,不要忘记写这一行(在代码中只写一次)

3、更新数据

将' column_1 '的第8行值替换为' english '

在一行中更改多行值

3、pandas的中级功能

现在你可以做一些在Excel中很容易做的事情。让我们来挖掘一些在Excel中做不到的神奇事情。

1、计算功能

JBbYnqy.png!web

图 3 .value_counts() 输出示例

2、对全行、全列或所有数据的操作

len()函数应用于“column_1”的每个元素

map()操作将一个函数应用于列的每个元素。

pandas的另一个特点是进行链式操作。它可以帮助你在一行代码中执行多个操作,从而更加简单和高效。

.apply()将函数应用于列。

.applymap()将一个函数应用于表(DataFrame)中的所有单元格。

3、tqdm包

在处理大型数据集时,pandas可能需要一些时间来运行.map()、.apply()、.applymap()操作。tqdm是一个非常有用的包,它可以帮助预测这些操作何时完成。

uUnE3mU.png!web

用pandas设置tqdm

将.map()替换为.progress_map(),.apply()和.applymap()也是一样

图4 这是你在Jupyter上看到的的进度条

4、相关矩阵和散射矩阵

6fIzuu7.png!web

6ZZRv26.png!web

图 5.corr() 函数会得到相关矩阵

6riA3yE.png!web

图 6散射矩阵的例子,它绘制同一图表中两列的所有组合

pandas的高级功能

1ã行列合并

在pandas中,行列合并非常简单。

合并3列只需要一行代码

2、分组

分组一开始并不简单,但是如果掌握其语法,你将发现这非常简单。

按列分组,选择要在其上操作函数的另一列。reset_index()将数据重新生成DataFrame(表)

NRraUv3.png!web

图 7使用链式操作,只需一行代码

3、遍历行

fYnqaqa.png!web

iterrows()循环两个变量:行索引和行(上面代码中的i和row)。

总体来说,pandas是一个帮助数据科学家快速阅读和理解数据的工具包,它也可以说是Python如此优秀的原因之一。我还可以展示更多pandas包其他有趣的特点,但以上所述足以让人理解为什么数据科学家离不开pandas包。总之,pandas包有以下特点:

1、 简单易用,隐藏了所有复杂和抽象的计算;

2、非常直观;

3、快速。

本文由阿里云云栖社区组织翻译。

文章原标题《Be a more efficient data scientist, master pandas with this guide

》,译者:黄小凡,审校:袁虎。

AFriMb3.jpg!web

程序员必看电影片单,高分烧脑假期必备!

zmMJjay.jpg!web

终于等到你!阿里正式向 Apache Flink 贡献 Blink 源码

RvAjuau.jpg!web

2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!

VVNnEvz.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK