最牛逼的数据分析之Pandas!亿级数据都能轻松处…

2018-07-29 08:48:38来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 

进群:125240963   即可获取数十套PDF或者零基础入门教程一套哦!

Pandas的数据类型

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

这里我们从csv文件中读取到了数据,并将他们存入了dataframe中。我们只需要调用read_csv函数并将csv文件的路径作为函数参数即可。header关键字告诉Pandas这些数据是否有列名,在哪里。如果没有列名,你可以将其置为None。Pandas非常智能,所以你可以省略这一关键字

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

你将获得类似下图的表

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

当你在Pandas中查找列时,你通常需要使用列名。这样虽然非常便于使用,但有时候,数据可能会有特别长的列名,例如,有些列名可能是问卷表中的某整个问题。把这些列名变短会让你的工作更加轻松:

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

我们也可以使用这些条件表达式来过滤一个已知的dataframe。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

这将返回一个仅仅包含9、10月降雨量低于1000mm的条目的dataframe。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

你也可以使用多条条件表达式来进行过滤:

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

这将返回rain_octsep小于1000并且outflow_octsep小于4000的那些条目。

值得注意的是,由于操作符优先级的问题,在这里你不可以使用关键字‘and’,而只能使用’&’与括号

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

好消息是,如果在你的数据中有字符串,你也可以使用字符串方法来过滤数据。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

注意到你必须使用.str.[string method],你不能直接在字符串上直接调用字符串方法。这一语句返回1990年代的所有条目。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

在上面这个例子中,我们把我们的索引值全部设置为了字符串。这意味着我们不可以使用iloc索引这些列了。这种情况该如何?我们使用loc。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

这里,loc和iloc一样会返回你所索引的行数据的一个series。唯一的不同是此时你使用的是字符串标签进行引用,而不是数字标签。

ix是另一个常用的引用一行的方法。那么,如果loc是字符串标签的索引方法,iloc是数字标签的索引方法,那什么是ix呢?事实上,ix是一个字符串标签的索引方法,但是它同样支持数字标签索引作为它的备选。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

正如loc和iloc,上述代码将返回一个series包含你所索引的行的数据。

既然ix可以完成loc和iloc二者的工作,为什么还需要它们呢?最主要的原因是ix有一些轻微的不可预测性。还记得我说数字标签索引是ix的备选吗?数字标签可能会让ix做出一些奇怪的事情,例如将一个数字解释成一个位置。而loc和iloc则为你带来了安全的、可预测的、内心的宁静。然而必须指出的是,ix要比loc和iloc更快。

通常我们都希望索引是整齐有序地。我们可以在Pandas中通过调用sort_index来对dataframe实现排序。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

对数据集应用函数

有时候你会想以某些方式改变或是操作你数据集中的数据。例如,如果你有一列年份的数据而你希望创建一个新的列显示这些年份所对应的年代。Pandas对此给出了两个非常有用的函数,apply和applymap。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

你也可以对多行进行分组操作:

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

接下来的unstack操作可能起初有一些困惑。它的功能是将某一列前置成为列标签。我们最好如下看看它的实际效果。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

这个操作会将我们在上面小节创建的dataframe转变成如下形式。它将标识‘year’索引的第0列推起来,变为了列标签。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

pivot实际上是在本文中我们已经见过的操作的组合。首先,它设置了一个新的索引(set_index()),然后它对这个索引排序(sort_index()),最后它会进行unstack操作。组合起来就是一个pivot操作。看看你能不能想想会发生什么:

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

如下你可以看到,两个数据集在年份这一类上已经合并了。rain_jpn数据集仅仅包含年份以及降雨量。当我们以年份这一列进行合并时,仅仅’jpn_rainfall’这一列和我们UK雨量数据集的对应列进行了合并。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

采用Pandas快速绘制图表

Matplotlib很好用,但是想要画出一个中途下降的图表还是需要费一番功夫的。而有的时候你仅仅想要快速画出一个数据的大致走势来帮助你发掘搞清这些数据的意义。Pandas提供了plot函数满足你的需求:

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

这里非常轻松快速地利用plot画出了一个你的数据的图表。利用这个图表,你可以紧接着直观地发现深入挖掘的方向。例如,如果你看我画出的我数据的图表,你可以看到1995年英国可能发生了干旱。

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

你也能发现英国的降雨量明显低于日本,然而人们却说英国雨下得很多!

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

 

是不是很牛逼,是不是很神奇?学到了吗?

最牛逼的数据分析之Pandas!亿级数据都能轻松处理!十分钟学会它

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:树莓派学习之路-GPIO Zero

下一篇:Redis(三)Redis基本命令操作与API