常用的数学统计算法
import numpy as np import pandas as pd from pandas import Series,DataFrame df =pd.DataFrame( { 'key1' :[4,5,3, np. nan, 2], 'key2':[1,2, np.NaN, 4,5], 'key3' :[1,2,3,'j','k'] }, index = ['a','b','c','d','e'] ) #-----输出------# key1 key2 key3 a 4.0 1.0 1 b 5.0 2.0 2 c 3.0 NaN 3 d NaN 4.0 j e 2.0 5.0 k
求 平均值 :默认按 列 统计整个dataframe求平均值 , 省略NaN及非数值
df.mean() #-----输出-----# key1 3.5 key2 3.0 dtype: float64
统计一列(平均值) :
## 参数 skipna 作用: 是否忽略NaN , 默认为True ##
df['key1'].mean() #空值,默认忽略,只统计数值类型的列 df.mean(axis=1) #统计行 df.loc[['d','a']].mean() #-----输出-----# 3.5 a 2.5 b 3.5 c 3.0 d 4.0 e 3.5 dtype: float64 key1 4.0 key2 2.5 dtype: float64
累加、累乘、累计最大值 :
df = DataFrame(np.random.randint(1,12,size=[3,4]),columns=list('ABCD'),index=list('abc')) # 累加 cumsum() df.cumsum() #依次累加计算 当前索引 :当前值+=上一个值 # 累乘 cumprod() df.cumprod() ##依次累乘计算 当前索引 :当前值*=上一个值 # 累计最大值 cummax() df.cummax() # 累计最大值,如果当前值大于下一位值,下一位等于当前值 下方折叠结果????
#-----原数据-----# A B C D a 11 6 2 11 b 3 2 6 7 c 5 2 11 3 #-----累加-----# A B C D a 11 6 2 11 b 14 8 8 18 c 19 10 19 21 #-----累乘-----# A B C D a 11 6 2 11 b 33 12 12 77 c 165 24 132 231 #-----累计最大值-----# A B C D a 11 6 2 11 b 11 6 6 11 c 11 6 11 11