Pandas常用函数总结
对一组数据的了解:一组数据表达一个或多个含义!这是一个有损低提取数据特征的过程
-
基本统计(含排序)
-
分布/累计统计
-
数据特征–相关性、周期性等
-
数据挖掘(形成知识)
-
数据排序
- .sort_index方法在指定轴上根据索引进行排序,默认升序.降序可将参数ascebding改为False;默认0轴,可通过axis参数修改
函数原型:.sort_index(axis=0,ascending=True)
- .sort_value方法在指定轴上根据数值进行排序,默认升序.默认0轴.同理,通过修改参数可改变排序方式.
两种对象的函数原型
- Series.sort_value(axis=0,ascending=True)
- DataFrame.sort_value(by,axis=0,ascending=True)
by参数:axis轴上的某个索引或索引列表
-
基本的统计分析函数
方法 | 说明 |
---|---|
.sum | 计算数据的总和,按0轴计算 |
.count | 计算非nan值的数量 |
.mean() .median() | 计算数据的算术平均值、算术中位数 |
.var .std | 计算数据的方差,标准差 |
.min .max | 计算数据的最小值,最大值 |
- 仅适用于Series类型
方法 | 说明 |
---|---|
.argmin() .argmax() | 计算数据最小值,最大值所在位置的索引(自动索引) |
.idxmin() .idxmax() | 计算数据最小值,最大值所在位置的索引(自定义索引) |
- 适用于Series和DataFrame类型
方法 | 说明 |
---|---|
.describe | 针对0轴(各列)的统计汇总 |
该方法生成一个Series对象
from pandas import Series,DataFrame
import pandas as pd
data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada','Nevada'],
...: 'year':[2000,2001,2002,2003,2004,2005],
...: 'pop':[1.5,1.7,3.6,2.4,2.9,3.2]}
...: frame = pd.DataFrame(data)
frame.describe()
Out[15]:
year pop
count 6.000000 6.000000
mean 2002.500000 2.550000
std 1.870829 0.836062
min 2000.000000 1.500000
25% 2001.250000 1.875000
50% 2002.500000 2.650000
75% 2003.750000 3.125000
max 2005.000000 3.600000
还可以使用iloc方法获取某一方面的信息:
#获取行数据
frame.describe().iloc[1]
Out[24]:
year 2002.50
pop 2.55
Name: mean, dtype: float64
#获取列数据
frame.describe().iloc[:,1]
Out[25]:
count 6.000000
mean 2.550000
std 0.836062
min 1.500000
25% 1.875000
50% 2.650000
75% 3.125000
max 3.600000
Name: pop, dtype: float64
- 适用于Series和DataFrame的累计分析函数
方法 | 说明 |
---|---|
.cumsum | 依次给出前1,2,3,…,n个数的和 |
.cumprod | 依次给出前1,2,3,…,n个数的积 |
.cummin | 依次给出前1,2,3,…,n个数中的最小值 |
.cummax | 依次给出前1,2,3,…,n个数中的最大值 |
- 适用于Series和DataFrame的滚动计算函数
方法 | 说明 |
---|---|
.rolling(w).sum() | 依次计算相邻w个元素的和 |
.rolling(w).mean() | 依次计算相邻w个元素的算术平均值 |
.rolling(w).var() | 依次计算相邻w个元素的方差 |
.rolling(w).std() | 依次计算相邻w个元素的标准差 |
.rolling.min() max() | 依次计算w个元素的最小值,最大值 |
如果该个元素前不够w-1个元素,该行元素将被赋值为Nan
- 相关分析
判断两个事物的相关性
- x增大,y增大–正相关
- x增大,y减小–负相关
- x增大,y无视–不相关
一、协方差方法(相对不太准确)
两个事物,表示为X和Y,如何判断它们的相关性?公式如下:
c o v ( X , Y ) = ∑ i = 1 n ( X i − X ‾ ) − ( Y i − Y ‾ ) n − 1 cov(X,Y) = \frac{\sum_{i=1}^{n} {(X_i-\overline{X})-(Y_i-\overline{Y})}}{n-1} cov(X,Y)=n−1∑i=1n(Xi−X)−(Yi−Y)
- 协方差>0–X和Y正相关
- 协方差<0–X和Y负相关
- 协方差=0–X和Y不相关
二、Pearson相关系数(比较准确)
r = ∑ i = 1 n ( X i − X ‾ ) − ( Y i − Y ‾ ) ∑ i = 1 n ( X i − X ‾ ) 2 ∑ i = 1 n ( Y i − Y ‾ ) 2 r = \frac{\sum_{i=1}^{n} {(X_i-\overline{X})-(Y_i-\overline{Y})}}{\sqrt{\sum_{i=1}^{n} {(X_i-\overline{X})^2}} \sqrt{\sum_{i=1}^{n} {(Y_i-\overline{Y})^2}}} r=∑i=1n(Xi−X)2∑i=1n(Yi−Y)2∑i=1n(Xi−X)−(Yi−Y)
-
注意:r取值范围在[-1,1],对r值取绝对值后:
- 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、Kendall等系数 |