Python数据分析数据可视化--不想学也得学的Pandas数值计算和统计基础

前面几篇博客写了pandas的两种基本数据结构Series和Dataframe,其实pandas里面还有一个非常好用的模块是时间模块,但是这个模块一般用的不多,对学金融和会计的同学可能比较重要,其他行业用的应该不是很多,我就不写有关它的部分了,今天这篇呢写一下Pandas的数值计算和统计基础部分,主要是一些数学函数的使用
(1)基本参数:axis、skipna
axis参数默认为0,按列来计算,当axis=1时,以行来计算。skipna参数:是否忽略NaN,默认True,如False,有NaN的列统计结果仍未NaN

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'])#创建Dataframe
print(df)

输出结果:
在这里插入图片描述
先来看axis参数

m1 = df.mean()#按列求均值
m2 = df.mean(axis=1)#按行求均值计算
print(m1)
print('----------')
print(m2)

在这里插入图片描述再来看skipna参数

m3 = df.mean(skipna=False)
m4 = df.mean(skipna=True)
print(m3)
print(m4)

输出结果:
在这里插入图片描述
因为原来数据中有空值,skipna的参数为False的时候不忽略空值,所以均值输出仍为空值
(2)主要数学计算方法1,可用于Series和DataFrame

df = pd.DataFrame({'key1':np.arange(10),
                  'key2':np.random.rand(10)*10})
print(df)
print('-----')

print(df.count(),'→ count统计非Na值的数量\n')
print(df.min(),'→ min统计最小值\n',df['key2'].max(),'→ max统计最大值\n')
print(df.quantile(q=0.75),'→ quantile统计分位数,参数q确定位置\n')
print(df.sum(),'→ sum求和\n')
print(df.mean(),'→ mean求平均值\n')
print(df.median(),'→ median求算数中位数,50%分位数\n')
print(df.std(),'\n',df.var(),'→ std,var分别求标准差,方差\n')
print(df.skew(),'→ skew样本的偏度\n')
print(df.kurt(),'→ kurt样本的峰度\n')

这些就是一些非常非常基本的数学统计函数,没有什么要特别注意的地方
(3)主要数学计算方法2,可用于Series和DataFrame

df['key1_s'] = df['key1'].cumsum()
df['key2_s'] = df['key2'].cumsum()
print(df,'→ cumsum样本的累计和\n')

df['key1_p'] = df['key1'].cumprod()
df['key2_p'] = df['key2'].cumprod()
print(df,'→ cumprod样本的累计积\n')

print(df.cummax(),'\n',df.cummin(),'→ cummax,cummin分别求累计最大值,累计最小值\n')
# 会填充key1,和key2的值

输出结果:
在这里插入图片描述
在这里插入图片描述
后面做数据分析时比较常用的是cumsum(),求数据的累积和,这个经常用来观察数据的一些特征
(4)唯一值

s = pd.Series(list('asdvasdcfgg'))
sq = s.unique()
print(s)
print(sq,type(sq))
print(pd.Series(sq))
# 得到一个唯一值数组
# 通过pd.Series重新变成新的Series

sq.sort()
print(sq)
# 重新排序

输出结果:
在这里插入图片描述
unique()就是用来挑选数组中的唯一值
(5)值计数–.value_counts()

sc = s.value_counts(sort = False)  # 也可以这样写:pd.value_counts(sc, sort = False)
print(sc)

输出结果:
在这里插入图片描述
.value_counts()在后面还是比较常用的,经常用来统计数据的数量
(6)成员资格—.isin()

s = pd.Series(np.arange(10,15))
df = pd.DataFrame({'key1':list('asdcbvasd'),
                  'key2':np.arange(4,13)})
print(s)
print(df)
print('-----')

print(s.isin([5,14]))
print(df.isin(['a','bc','10',8]))

输出结果:
在这里插入图片描述
这个主要用来做一下判断使用,得到的是一个布尔值的Series或者Dataframe

今天就到这里啦~

我是一位211高校在读的本科生,是个耿直GIRL,对数据分析比较感兴趣,去年拿到了数学建模国家一等奖,今年参加了美赛还没结果,参加比赛选的题型都是大数据型,用过Excel,Spss,Lingo,MATLAB做数据分析,现在觉得Python比较高效,做数据可视化也非常方便,每天都在坚持学习,对Python数据分析和数据可视化有兴趣的可以关注我哦,每天都会更新的,跟我一起进步呀

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值