大熊猫是全竹宴美食家中的饕餮,亦是十足的瞌睡虫。不过它们还身怀一项隐秘技能:(不遗余力吞噬下)大量的数据。今天将要介绍的就是数据处理中最强有力也最流行的工具之一:Pandas!
当人们谈到数据科学,往往不会立即想到 Pandas。这些黑白相间憨态可掬的大熊猫总是把时间消耗在吃和睡上面,而不是钻研数据相关的研究。但今天我们就是要用 Pandas 对付候选数据集,然后准备好下一步用于机器学习。我没法在一期视频中介绍整个 Pandas 库,但是所幸我能在这期概述中给你一些帮助,让你能自行去深入探索 Pandas 的世界。
我吃我吃我吃吃吃!数据集就是我的竹子,别和我抢!
Pandas 是一个低学习成本高性能的数据结构和数据分析工具。抛开大熊猫憨态可掬的样子不说,「Pandas」这个名字来源于术语「panel data」,指的是统计和计量经济学上的多维数据。
要安装 Pandas,只需在 Python 环境中执行 pip install pandas 命令就可以了。之后只需要在代码中引入 Pandas:import pandas as pd。
人们用 Pandas 时往往都会用到 pd.read_csv 来读入 CSV 文件中的数据。这也常常是人们使用时落笔的第一点墨。
pd.read_csv 会将数据载入一个 DataFrame 中。它本质上是一张电子表格或是数据表。我们可以通过在 DataFrame 调用 head() 来粗略察看数据集中的概况。
DataFrames 中有一行一行数据,这些数据的列首都是经过命名的,这些命名后的列又被称为「序列」。
我最喜欢的 DataFrames 的一些特性当中,有一个函数叫做 describe(),这个函数会罗列出你的 DataFrame 的一些相关数据。这个函数有助于你检查数据集,思考其中的数据分布是否合理,也可以检验是否各项属性都符合预期。
有时候我会用 Pandas 来扰乱数据。有时候你想要打乱所有数据,而不是仅仅释出数据时取用首部那一点点数据,那么这时 Pandas 就很有用了。比如,假使你的数据处于完全有序的状态,没有丝毫混乱,此时你可能就需要进行一些额外的混合、扰乱操作了。
然而,对于那些无法放进内存里的大型数据集,这么做实在不太明智。也许应该试试更高明点的法子来处理。
处理列
要处理数据集中单独的某一列,只需使用括号来标注出那一列,将该列的名字作为参数传入即可。如果你不清楚有哪些具体的列名称,那么可以回过头看看 .describe() 输出的内容或者用 .columns 以数组形式输出 DataFrame 中所有的列名称。
处理行
处理行的方法与处理列不尽相同。比如,如果我们要想得到某个 DataFrame 中索引为 i 的行,需要使用 .iloc[i] 得到该行数据。
索引为 5,表示这是第 6 行
记住 Pandas 是以 0 作为索引起点的,所以数据中的第一行对应着索引 0。
同时处理行和列
有时你会想要得到某一指定的行、列的数据。由于行列的访问方式不同,我们需要结合上面讲到的两种方式:
当然,你也可以交换两者的访问顺序,比如 csv_data.iloc[5][‘sepal_len’]。不过,相较之下我觉得这样一来可读性就变差了。
某个行/列范围
真正有意思的是当你要处理某个行列范围内数据的时候。
对于列,一个列范围只需要用一个列名称的数组来指定。
如果要挨着输入的列名字太多太复杂,那么可以直接使用 csv_data.columns 得到列名称数组后,取数组中某个范围作为列索引的值即可。
本来这两列我可以直接输入进去的,不过你明白我的意思就好
如果要得到某个范围内的行怎么办?我们用冒号作为 .iloc 之后的括号内中的分隔符来表达即可。
起始索引已经被包括在内了,而终止索引却被忽略了。注意,返回的是索引为 5、6、7、8、9 的行,而不包含索引为 10 的行。
混合行、列范围选择
我们想要的是行的一个子集和列的一个子集,该怎么做?我们把上面谈到的各类方法结合起来:
首先,得到所需的列名数组:
cols_2_4 = csv_data.column[2:4]
然后是所有所需的列:
df_cols_2_4 = df[cols_2_4]
选择这些列中的指定行:
df_cols_2_4.iloc[5:10]
如果你非常熟练了,完全可以把上面三步结合成一步:
csv_data[csv_data.columns[2:4]].iloc[5:10]
我希望你能先暂停视频回头想想这个表达式的等价形式。我不会走开,一直在这儿等你。
小结几句
Pandas 中的链式操作不仅会让数据处理更快,同时当你熟练之后,代码可读性也会显著提高。
我们已经看过一些 DataFrame 的处理了,但是 Pandas 所衍生的一整套工具却远远不止这些。从高效的 PyTables 和 HDF5 式文件存储到进行统计学分析,处处遍布 Pandas 的身影。
稍后就试着去用一下 Pandas 吧,定会让你满意!
-
机器学习
+关注
关注
66文章
8357浏览量
132336 -
python
+关注
关注
55文章
4776浏览量
84392 -
数据科学
+关注
关注
0文章
164浏览量
10040
原文标题:AIA 系列 | 难以置信,大熊猫还能吃数据?
文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论