- Pandas库的数据的排序
.sort_index(axis=0,ascending=True)
:在指定轴上根据索引进行排序,默认升序(axis默认为0,ascending表示递增排序,默认True)- 例:
import pandas as pd
import numpy as np
b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b']) #默认0轴进行运算
b.sort_index()
b.sort_index(ascending=False)
c = b.sort_index(axis=1,ascending=False) #对c中按列序号进行降序排序
c = c.sort_index()
.sort_values()
:在指定轴上根据数值进行排序,默认升序
- Series.sort_values(axis=0,ascending=True)
- DataFrame.sort_value(by,axis=0,ascending=True) #by: axis轴上某个索引或索引列表
- 例:
import pandas as pd
import numpy as np
b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
c = b.sort_value(2,ascending=False)
c = c.sort_values('a',axis=1,ascending=False)
(NaN统一放到排序末尾)
- 基本的统计分析函数(适用于Series和DataFrame类型)
方法 | 说明 |
.sun() | 计算数据总和,按0轴计算,下同 |
.count() | 非NaN值的数量 |
.mean() .median() | 计算数据的算数平均值、算数中位数 |
.var() .std() | 计算数据的方差、标准差 |
.min() .max() | 计算数据的最小值、最大值 |
.describe() | 针对0轴(各列)的统计汇总 |
- 仅适用于Series类型的函数
方法 | 说明 |
.argmin() .argmax() | 计算数据最大值、最小值所在位置的索引位置(自动索引) |
.idxmin() idxmax() | 计算数据最大值、最小值所在位置的索引(自定义索引) |
- 例:
import pandas as pd
a = pd.Series([9,8,7,6],index=['a','b','c','d'])
a.describe()
type(a.describe())
a.describe()['count']
a.describe()['max']
import pandas as pd
import numpy as np
b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
b.describe()
type(b.describe())
b.describe().loc['max'] #视频中是b.describe().ix['max'],运行报错,所以改成loc[]
b.describe()[2]
- 累计统计分析函数(适用于Series和DataFrame类型)
方法 | 说明 |
.cumsun() | 依次给出前1、2、…、n个数的和 |
.cumprod() | 依次给出前1、2、…、n个数的积 |
.cummax() | 依次给出前1、2、…、n个数的最大值 |
.cummin() | 依次给出前1、2、…、n个数的最小值 |
- 例:
import pandas as pd
import numpy as np
b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
b.cumsum()
b.cumprod()
b.cummin()
b.cummax()
- 滚动计算/窗口计算(适用于Series和DataFrame类型)
方法 | 说明 |
.rolling(w).sum() | 依次计算相邻w个元素的和 |
.rolling(w).mean() | 依次计算相邻w个元素的算数平均值 |
.rolling(w).var() | 依次计算相邻w个元素的方差 |
.rolling(w).std() | 依次计算相邻w个元素的标准差 |
.rolling(w).min().max() | 依次计算相邻w个元素的最小值和最大值 |
- 例:
import pandas as pd
import numpy as np
b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])
b.rolling(2).sum()
b.rolling(3).sum()
- 数据的相关分析
- 相关性:
- X增大,Y增大,两个变量正相关
- X增大,Y减小,两个变量负相关
- X增大,Y无视不,两个变量相关
- 协方差:
- 协方差>0,X和Y正相关
- 协方差<0,X和Y负相关
- 协方差=0,X和Y独立无关
- Pearson相关系数:r取值范围:[-1,1]
- 0.8-1.0极强相关
- 0.6-0.8强相关
- 0.4-0.6中等强度相关
- 0.2-0.4弱相关
- 0.0-0.2极弱相关或无相关
- 相关分析函数(适用于Series和DataFrame类型)
方法 | 说明 |
.cov() | 计算协方差矩阵 |
.corr() | 计算相关系数矩阵,Pearson、Spearman、Kendal等系数 |
- 例:(房价增幅与M2增幅的相关性)
import pandas as pd
hprice = pd.Series([3.04,22.93,12.75,22.6,12.33],index=['2008','2009','2010','2011','2012'])
m2 = pd.Series([8.18,18.38,9.13,7.82,6.69],index=['2008','2009','2010','2011','2012'])
hprice.corr(m2)