python 数据分析笔记(四)
-
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)
-