利用python进行统计分析

tech2025-09-03  56

通常我们拿到特征后学要分析打指标非常多,例如均值、最大值、最小值等等。 下面讲解一下统计分析,先用字典结构创建一个简单的DataFrame,既方便传输数据,还可以指定索引和列名

 

#随机生成一个5×3的矩阵,元素取值为100以内的整数 import numpy as np a = np.random.randint(100,size=(5,3)) a

输出:

array([[72, 8, 93], [21, 62, 7], [69, 76, 19], [ 2, 86, 12], [11, 42, 91]]) df = pd.DataFrame(a, index=['a','b','c','d','e'], columns=['A','B','C']) df

输出:

#此函数若不指定维度,默认对每列数据进行加操作,相当于df.sum(axis=0) df.sum()

输出:

A 175 B 274 C 222 dtype: int64 #当令axis=1时,对每行数据进行加操作。 df.sum(axis=1)

输出:

a 173 b 90 c 164 d 100 e 144 dtype: int64

 同理,均值df.mean()、中位数df.median()、最大值df.max()、最小值df.min()等操作计算方式均相同。

''' describe()函数能观察所有数据的情况,既可以得到中各项统计指标,还可以观察数据是否存在问题,例如,是否存在缺失值或不合理的负数 ''' df.describe()

输出:

#将数据指定划分为几个组 df['A'].value_counts(ascending=True,bins=5)

输出:

(30.0, 44.0] 0 (44.0, 58.0] 0 (16.0, 30.0] 1 (1.929, 16.0] 2 (58.0, 72.0] 2 Name: A, dtype: int64

上述操作将A组数据平均分成5组,分箱操作还可以用cut()函数,可实现的功能更丰富些。首先生成一个数组,然后指定4个判断值,用这4个判断值将数组内的数值分组。 判断值组成的区间是左开右闭原则,返回的结果是当前数值属于的区间。 

list = [34, 64, 42, 49, 22, 97, 97, 1, 53, 47, 71, 20, 64, 8, 39] bins = [0,25,50,75,100] bins_res = pd.cut(list,bins) bins_res

输出:

[(25, 50], (50, 75], (25, 50], (25, 50], (0, 25], ..., (50, 75], (0, 25], (50, 75], (0, 25], (25, 50]] Length: 15 Categories (4, interval[int64]): [(0, 25] < (25, 50] < (50, 75] < (75, 100]] # 各组的元素个数 pd.value_counts(bins_res)

 输出:

(25, 50] 5 (50, 75] 4 (0, 25] 4 (75, 100] 2 dtype: int64 #可以定义指定标签,返回的是指定标签下的元素个数 group_names = ['s','m','l','xl'] pd.value_counts(pd.cut(list,[0,25,50,75,100], labels=group_names))

 输出:

m 5 l 4 s 4 xl 2 dtype: int64

 

 

最新回复(0)