Pandas是数据分析必须要学的库!这是我见过最详…

2018-08-06 09:14:00来源:博客园 阅读 ()

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

---恢复内容开始---

1.选取行名、列名、值   进群:125240963   即可获取数十套PDF哦!

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.以标签(行、列的名字)为索引选择数据—— x.loc[行标签,列标签] 私信小编007即可获取数十套PDF哦!

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

3.以位置(第几行、第几列)为索引选择数据—— x.iloc[行位置,列位置]

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

4.同时根据标签和位置选择数据——x.ix[行,列]

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

5.选择连续的多行多列——切片

起点索引:终点索引 这种用法叫做一个切片,指从起点索引到终点索引。看实际用法就懂了。

如果起点索引省略代表从头开始,终点索引省略代表直到最后,都省略就代表全部了。

切片在.loc、.iloc、.ix三种方法中都可以应用

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

由上例可见,当以位置为索引时,切片是不包括终点的,是左闭右开的。即第1列到第3列不是写作0:2而是0:3。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

6.选择不连续的某几行或某几列

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

备注:当以标签名选取不连续的某几行的时候在这个例子中如df.loc['2016-02-02','2016-02-04',:]这样写会出错,,是时间格式的原因,这样写就可以了df.ix[[pd.Timestamp('2016-02-02'), pd.Timestamp('2016-02-04')]]

7.简便地获取行或列

直接用切片获取行,直接用标签名获取列。注意不要错乱。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

8.如何返回一个dataframe的单列或单行

如上,此时返回的是一个series,而不是dataframe。有时单独只获取一行的时候也会返回一个series,如df.ix[0,:]。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

若要返回dataframe,可用中括号把索引括上,如下。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

9.按条件选取数据——df[逻辑条件]

逻辑条件支持&(与)、|(或)、~(非)等逻辑运算

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

这个方法有个常用情景,即按条件修改数据:

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

02. dataframe转置、排序

1.转置 df.T

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.按行名或列名排序——df.sort_index

df.sort_index(axis=0,ascending=True)

  • axis= 0 为按行名排序;1 为按列名排序
  • ascending= True 为升序; False 为降序
Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

3.按值排序——df.sort_index

df.sort(by=, ascending=True)

  • by= 按哪一列的值排序,默认是按行标签排序
  • ascending= True 为升序; False 为降序
Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

03. dataframe增删行或列

1.获得一个datframe数据类型的样例

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.增加一列或一行

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

3.删除行或列——df.drop

df.drop(labels,axis=0,inplace=Flase)

  • labels 行或列的标签名,写在第一个可省略。
  • axis= 0 删除行;1 删除列
  • inplace= False 生成新dataframe;True 不生成新的dataframe,替换原本dataframe。默认是False。
  • 该操作默认返回的是另一个新的dataframe,以至于原来的没有变,如在下面第一个例子中删除的列,在第二个例子中还有。要替换原来的请调整inplace参数
Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

04.链接多个dataframe

1.concat,concat([df1,df2,...],axis=0)

  • axis= 0 纵向;1 横向。
  • 使用前需导入过pandas模块
  • 使用时要注意连接的dataframe行列对齐
  • 可以同时拼接多个dataframe
  • 拼接是强制的,允许连接后存在同名的行或列,见纵向连接的第二个例子
Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.横向连接

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

3.纵向连接

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

05.组建dataframe

1.组建方法——pd.DataFrame

pd.DataFrame(data=None, index=None, columns=None)

  • data= 数据
  • index= 索引,即行名、行表头
  • columns= 列名、列表头

使用前要执行前面的import pandas as pd

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.用字典型数据组建——pd.DataFrame

方法基本同上,因为字典型自带一个标签,所以就不用写列名了。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

3.简便地获得聚宽数据中的时间索引

有时建立一个dataframe时,为了和平台数据保持一致,需要使用相同的时间行索引,但时间数据操作复杂,而且涉及到节假日、非交易日等问题,直接建立比较困难,这里介绍一种简单的方法,快速获得跟平台数据一致的时间索引。原理就是直接把平台数据的时间索引拿出来。例子如下:

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

06.dataframe的缺失值处理

1.去掉缺失值——df.dropna

df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

  • axis= 0 按行检查缺失;1 按列检查缺失。不写默认为0
  • how= 'any' 有一个缺失值就算缺失;'all' 行或列(根据axis参数)全缺失才算缺失。不写默认为'any'
  • thresh= x,x为一个整数,含义为行或列(根据axis参数)中非缺失数值个数大于等于x则不算缺失,即小于x则算缺失,会被去除。
  • subset= 标签名。选择要对哪个列或行(与axis中的相反)进行检查缺失,没写的则不检查。即限制检查范围。

相对复杂,请看例子和与例子注释。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.对缺失值进行填充——df.fillna

df.fillna(value=None,axis=None)

  • value= 替换缺失值的值。可以是单个值、字典、dataframe等,但不能是list。区别请看例子。
Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

3.判断数据是否为缺失——df.isnull

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

为什么要这样用这个方法判断是否为缺失?

因为nan不等于nan(如下例),即用类似x == nan条件为真 这样的判断方法无法判断一个值x是否为nan。

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

07.常用统计函数

常用统计函数

  • describe 针对Series或个DataFrame列计算汇总统计
  • count 非na值的数量
  • min、max 计算最小值和最大值
  • idxmin、idxmax 计算能够获取到最大值和最小值得索引值
  • quantile 计算样本的分位数(0到1)
  • sum 值的总和
  • mean 值得平均数
  • median 值得算术中位数(50%分位数)
  • mad 根据平均值计算平均绝对离差
  • var 样本值的方差
  • std 样本值的标准差
  • skew 样本值得偏度(三阶矩)
  • kurt 样本值得峰度(四阶矩)
  • cumsum 样本值得累计和
  • cummin,cummax 样本值得累计最大值和累计最小值
  • cumprod 样本值得累计积
  • diff 计算一阶差分
  • pct_change 计算百分数变化

查看函数的详细信息

08.panel类型数据分解成dataframe

1.panel的取用方法

panel类型的的取用方法类似与dataframe,看下例子也就明白了。一般要做统计方面的工作,也是如下分解成dataframe进行操作,基本满足日常需求。了解更多panel的操作可参考:http://pandas.pydata.org/pandas-docs/stable/api.html#panel

2.panel类型数据分解成dataframe方法

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

09.研究内存取dataframe

1.把dataframe存成csv文件——df.to_csv()

用法如下,文件都是存到研究空间中的,如果不写路径是默认是存在根目录,如df.to_csv('df.csv')

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

2.读取被存成csv文件的dataframe——pd.read_csv()

Pandas是数据分析必须要学的库!这是我见过最详细最牛逼的教程!

 

文章来源于:JoinQuant聚宽

聚宽,国内最大Python量化平台,提供从数据、回测、模拟、实盘等全流程产品。聚宽已汇聚超过15w量化爱好者,与数十家机构合作,聚宽公众号会定期更新量化干货,教你用Python写出好策略。

---恢复内容结束---

标签:

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

上一篇:网上都没有提到的教程:python捕获异常后,怎么输出错误文件和行

下一篇:Python3练习