Series和DataFrame汇总和计算描述统计

选项说明
axis约简的轴. DataFrame 的行用0,列用1
skipna默认值为true,排除缺失值
level如果轴是层次化索引的(MultiIndex),则根据level分组约简
方法说明
count非NA值的数量
describe针对Series或各DataFrame列计算汇总统计
min,max计算最小值和最大值
argmin,argmax计算能获取到最小值和最大值的索引位置(整数)
idxmin,idxmax计算能够获取到最小值和最大值的索引值
quantile计算样本的分位数(0到1)
sum值的总和
mean值的平均数
median值的算术中位数(50%分位数)
mad根据平均值计算平均绝对离差
var样本值的方差
std样本值的标准差
skew样本值的偏度(三阶矩)
kurt样本值的峰度(四阶矩)
cumsum样本值的累计和
cummin,cummax样本值的累计最大值和累计最小值
cumprod样本值的累计积
diff计算一阶差分(对时间序列很有用)
pct_change计算百分数变化
from pandas import Series,DataFrame
import numpy as np
df = DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],
              index=['a','b','c','d'],columns=['one','two'])
df
onetwo
a1.40NaN
b7.10-4.5
cNaNNaN
d0.75-1.3

sum()

df.sum()         #计算 纵列 之和
one    9.25
two   -5.80
dtype: float64
df.sum(axis=1)    #计算 行所有值 之和
a    1.40
b    2.60
c    0.00
d   -0.55
dtype: float64

mean()

df.mean(axis=1,skipna=False)   #计算 行所有值 的平均值
a      NaN
b    1.300
c      NaN
d   -0.275
dtype: float64

.idxmax() 返回每列最大值所在的行索引

df.idxmax()
one    b
two    d
dtype: object

.cumsum() 每列的值做累计

df.cumsum()
onetwo
a1.40NaN
b8.50-4.5
cNaNNaN
d9.25-5.8

.describe() 针对每列 描述其汇总统计

df.describe()
onetwo
count3.0000002.000000
mean3.083333-2.900000
std3.4936852.262742
min0.750000-4.500000
25%1.075000-3.700000
50%1.400000-2.900000
75%4.250000-2.100000
max7.100000-1.300000
obj = Series(['a','a','b','c']*4)
obj
0     a
1     a
2     b
3     c
4     a
5     a
6     b
7     c
8     a
9     a
10    b
11    c
12    a
13    a
14    b
15    c
dtype: object

针对非数值型数据

obj.describe()
count     16
unique     3
top        a
freq       8
dtype: object

相关系数与协方差

.pct_change() 默认以第一行为基准,没列下一个数相较上一个数百分比变化

s = Series([90, 91, 85])
s
0    90
1    91
2    85
dtype: int64
s.pct_change()    # periods默认为1
0         NaN
1    0.011111     # 1/91
2   -0.065934   # 6/91
dtype: float64

periods 参数

s.pct_change(periods=2)
0         NaN
1         NaN
2   -0.055556       #5/90
dtype: float64
s = Series([90, 91, None, 85])
s
0    90.0
1    91.0
2     NaN
3    85.0
dtype: float64

fill_method 参数

s.pct_change()
0         NaN
1    0.011111
2    0.000000
3   -0.065934
dtype: float64
s.pct_change(fill_method='ffill')
0         NaN
1    0.011111
2    0.000000
3   -0.065934
dtype: float64
df = DataFrame({
         'FR': [4.0405, 4.0963, 4.3149],
         'GR': [1.7246, 1.7482, 1.8519],
         'IT': [804.74, 810.01, 860.13]},
         index=['1980-01-01', '1980-02-01', '1980-03-01'])
df
FRGRIT
1980-01-014.04051.7246804.74
1980-02-014.09631.7482810.01
1980-03-014.31491.8519860.13
df.pct_change()           # 以第一行为基准,计算行之间的百分比变化
FRGRIT
1980-01-01NaNNaNNaN
1980-02-010.0138100.0136840.006549
1980-03-010.0533650.0593180.061876
df.pct_change(axis=1)      # 以第一列为基准,计算列之间的百分数变化
FRGRIT
1980-01-01NaN-0.573172465.624145
1980-02-01NaN-0.573225462.339435
1980-03-01NaN-0.570813463.458124

.corr() 用于计算两个Series中重叠的,非NA的、按索引对齐的值的相关系数

df = DataFrame([(.2, .3), (.0, .6), (.6, .0), (.2, .1)],
                       columns=['dogs', 'cats'])
df
dogscats
00.20.3
10.00.6
20.60.0
30.20.1
df.dogs.corr(df.cats)
-0.85106449634699
df.dogs.cov(df.cats)
-0.05666666666666666
df.corr()     #返回相关系数
dogscats
dogs1.000000-0.851064
cats-0.8510641.000000
df.cov()     #返回协方差矩阵
dogscats
dogs0.063333-0.056667
cats-0.0566670.070000

.corrwith()

计算其列或行跟另一个Series或DataFrame之间的相关系数。

传入一个Series将会返回一个相关系数的Series

传入DataFrame则会计算按列名配对的相关系数

df.corrwith(df.dogs)
dogs    1.000000
cats   -0.851064
dtype: float64
df.corrwith(df)
dogs    1.0
cats    1.0
dtype: float64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值