python数值计算基础_【Python数据分析】数值计算和统计基础

1.axis与skipna参数的使用

注意:np.nan表示空值

# 建立数据集

import numpy as np

import pandas as pd

df = pd.DataFrame({'key1':[4,5,6,np.nan,2], # np.nan表示空值

'key2':[1,2,np.nan,15,10],

'key3':[1,2,3,'m','n'],

'key4':['a1','a2','a3','a4','a5']},index = ['a','b','c','d','e']

)

print(df)

print('-----------------分割线-------------------')

# 打印每列数据类型

print(df['key1'].dtype,df['key2'].dtype,df['key3'].dtype,df['key4'].dtype)

# 求整体平均值(只会对数字列进行统计)

print('----------------整体平均------------------')

print(df.mean())

# 根据索引求平均值

print('key2列的平均值:',df['key2'].mean())

print('----------------axis参数------------------')

# 单独统计一列的平均值,axis=0表示以列计算 axis=1表示以行计算,默认axis=0

m1 = df.mean(axis=1)

print(m1)

print('----------------skipna参数------------------')

# skipna参数:是否忽略NaN,默认True,如False,有NaN的列统计结果仍未NaN

m2 = df.mean(skipna=False)

print(m2)

输出结果:

2238c49ec60f3a948f56944535096a35.png

2.常用统计方法

其他随机方法列表如下:

count:统计非Na值的数量

min:统计最小值

max:统计最大值

quantile:统计分位数,参数q确定位置,例如:quantile(q=0.75)

sum:求和

median:求中位数

std:标准差

var:方差

skew:偏度

kurt:峰度

实战演练:

import numpy as np

import pandas as pd

df = pd.DataFrame({'key1':[1,2,3,4,25,6,7,8,9,10],

'key2':[10,20,30,300,50,60,70,80,90,100]})

print(df)

print('-' * 20)

# 求最大值

print("计数count:")

print(df.count())

print('-' * 20)

print("最小值min:")

print(df.min())

print('-' * 20)

print("最大值min:")

print(df.max())

print('-' * 20)

print("第三分位数quantile:")

print(df.quantile(0.75))

print('-' * 20)

print("求和sum:")

print(df.sum())

print('-' * 20)

print("求中位数median:")

print(df.median())

print('-' * 20)

print("求标准差std:")

print(df.std())

print('-' * 20)

print("求方差var:")

print(df.var())

print('-' * 20)

print("求偏度skew:")

print(df.skew())

print('-' * 20)

print("求峰度kurt:")

print(df.kurt())

输出结果:

06a523e043d0dc136eeba84a4e6314b4.png

3.求累计值:cumsum(累计和),累计积

import numpy as np

import pandas as pd

df = pd.DataFrame({'key1':[1,2,3,4,25,6,7,8,9,10],

'key2':[10,20,30,300,50,60,70,80,90,100]})

print(df)

print('-------------累计和&累计积-----------------')

df['key1累计和'] = df['key1'].cumsum()

df['key2累计和'] = df['key2'].cumsum()

df['key1累计积'] = df['key1'].cumsum()

df['key2累计积'] = df['key1'].cumsum()

print(df)

输出结果:

1c520da09d4ba50332f0bf41879fbcc2.png

4.唯一值:unique

import pandas as pd

s = pd.Series(list('abdsssdsd'))

print(s)

# 求唯一值

sq = s.unique()

print('-' * 50)

print(sq,type(sq))

输出结果:

953c84722b18f76055cfab71bf59201f.png

5.值计数:value_counts()

值计数主要针对新的Series,计算出不同值出现的频率

import pandas as pd

s = pd.Series(list('abdsssdsd'))

print(s)

print('-' * 50)

print(s.value_counts(sort = False)) # sort参数:排序,默认为True

输出结果:

04f24c15de037d4c134a861bf0c625af.png

6.成员资格:isin()

判断某个数据集的元素是否在另外一个数据集中,返回结果为布尔值。

s = pd.Series(np.arange(10,13))

df = pd.DataFrame({'key1':list('asdc'),

'key2':np.arange(4,8)})

print(s)

print('-' * 50)

print(df)

print('-' * 50)

print(s.isin([12,15]))

print('-' * 50)

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

输出结果:

55ac948b01df63f84fec4b317b0f7dbf.png

原文:https://www.cnblogs.com/OliverQin/p/12324252.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值