Python入门 —— Pandas Day4【转载】

转载于 https://mp.weixin.qq.com/s?__biz=MjM5MDEzNDAyNQ==&mid=402568021&idx=1&sn=66d5234a31f2de640baa71439f856a33&scene=21#wechat_redirect

Pandas被称为“Python Data Analysis Li”,它:
是基于Numpy的一种工具库;
提供了大量能使我们快速便捷处理数据的函数和方法;
最初被作为金融数据分析根据被开发出来;
集成了时间序列功能;
对缺失值的灵活处理能力;

Pandas有两种主要的数据结构:Series和Dataframe,前者是一维的,后者是多维的(表格型)。

一、 Series

Series由一组数据和对应的索引组成,看个例子:
在这里插入图片描述
有点像第1天学的字典。
复习一下字典:
在这里插入图片描述
Series在操作上也像字典,对比一下a(字典)和b(Series):
在这里插入图片描述
实际上,字典也确实可以直接变身成为Series!比如下面的字典a,储存了每个地区的平均工资,将其变为Series:
在这里插入图片描述

二、DataFrame

1. 数据结构

DataFrame是一个表格型的数据结构。

下面的这组数据,储存了2015年中国人口前十的城市,以及它们拥有的人口。
在这里插入图片描述
那么怎么才能生成这样一张表呢?最常用的方法,是用字典生成:
在这里插入图片描述
在这里插入图片描述

2. 基本操作

(1)改变索引名

刚刚的城市人口数据,我们有10个城市,索引是0~9,我们不想用这么单调的数字来做索引,想用每个城市的简称来表示,和Series一样,可以用index=来指定索引
(因为Python自带的shell中,结果的显示没有ipython notebook美观,所以下面的例子我用ipython notebook的结果来展示)
在这里插入图片描述

(2)增加一列

如何给DataFrame增加一列?还是以刚刚城市人口的数据pop_DF为例,我们来增加一列,给每个城市打上“China”的标记:
在这里插入图片描述
有时候增加的这一列不一定全,可能有缺失,比如再给每个城市增加一列归属省份,但是本人地理差,只知道广州属于广东,苏州属于江苏,那么我可以这么加:
在这里插入图片描述
总结:

  1. 可以用Series来按照索引的匹配来增加一列
  2. 缺失的地方会用NaN来表示。

(3)排序

作为统计师,排序是常见的,我想到的以后可能用到的至少有这几种:

人为给定顺序;
按照索引来自动排序:升序、降序;
按照某一变量来自动排序;

人为给定顺序:
用reindex函数,可以人为的给定顺序,想让谁在前面谁就在前面。
比如,我们按照首字母来人为给定如下顺序
在这里插入图片描述
这时我有一个问题了:要是reindex中出现了不存在的索引怎么办?
在这里插入图片描述
比如上例中pop_DF2的“Chu”,结果其所对应的全部变量都是缺失的。

按照索引自动排序:
可以用 .sort_index() 来让数据按照索引自动排序。

扫描二维码关注公众号,回复: 4595219 查看本文章

在上例中,我们多了一个索引为“Chu”的空数据,并且在Bao的前面,我们再用sort_index()让它按照字母顺序自动重排一下。
在这里插入图片描述
这是默认的升序排列,也可以降序,只要指定ascending=False就可以:
pop_DF2.sort_index(ascending=False)

按照变量自动排序:
我们可以用 .sort_values( by = ‘’ ) 来指定某一个变量来排序:

我们回到pop_DF这个数据:
在这里插入图片描述

(4)删除一列或一行

如何删掉一行?
用 .drop() 就可以删掉指定的索引行
比如我们想删掉pop_DF中,人口大于2000(万)的城市,也就是重庆和上海,对于的索引(也就是简称)为:Yu和Hu
在这里插入图片描述
如何删掉一列?
.drop() ,指定一下要删的列变量,并且加一句 axis=1
在这里插入图片描述

Pandas数据的DataFrame数据格式的魅力:
在这里插入图片描述
在这里插入图片描述

列表生成DataFrame:

在这里插入图片描述
在这里插入图片描述

字典生成DataFrame的问题

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43332432/article/details/85122106