python pandas中describe()各项含义及求值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python pandas中describe()各项含义及求值相关的知识,希望对你有一定的参考价值。
如图,25%,75%是如何求出来的
1、在pandas中,我们采用了R语言中的惯用法,即将缺失值表示为NA,它表示不可用not available。
2、pandas项目中还在不断优化内部细节以更好处理缺失数据。
3、过滤掉缺失数据的办法有很多种。可以通过pandas.isnull或布尔索引的手工方法,但dropna可能会更实用一些。对于一个Series,dropna返回一个仅含非空数据和索引值的Series。
4、而对于DataFrame对象,可能希望丢弃全NA或含有NA的行或列。dropna默认丢弃任何含有缺失值的行。
5、最后通过一个常数调用fillna就会将缺失值替换为那个常数值,若是通过一个字典调用fillna,就可以实现对不同的列填充不同的值。这样就完成了。
参考技术Apython pandas中,对于一维数组,describe会返回一系列参数,count,mean,std,min,25%,50%,75%,max。
针对该问题,对于describe()返回值的解释如下:
1、count:返回数组的个数,如上述为4个元素,所以返回为4;
2、mean:返回数组的平均值,1 3 5 9的平均值为4.5;
3、std:返回数组的标准差;
4、min:返回数组的最小值;
5、25%,50%,75%:返回数组的三个不同百分位置的数值,也就是统计学中的四分位数。首先需要确定三个四分位数的位置,第一个四分位数Q1所在的位置是:(1+4)/4 = 1.25,同理Q2的位置是:(1+4)/4×2 = 2.5,Q3的位置是:(1+4)/4×3 = 3.75,则三个位置所对应的数分别为:
1×0.25+3×0.75=2.5
3×0.5+5×0.5 = 4
5×0.75+9×0.25 = 6
即为函数返回的相应的值,其中50%对应的是中位数。
6、max:返回列表的最大值。
扩展资料:
describe()函数有三个参数可以指定,分别是percentiles, include, exclude,三者的含义如下:
1、percentiles:默认是返回四分位数,即25%,50%和75%,可以修改:describe(percentiles=[.75, 0.8]),则返回的是50%,75%,80%位置的数,可以根据需要进行相应的处理。
2、include:默认只计算数值型特征的统计量,当参数为'all'时,显示所有类型的数据;当参数为numpy.number时,返回的是数值类型的数据;当参数为numpy.object,返回的是object类型的数据;当include=['category']时,返回的是category;当include=['O']时,返回统计的是字符串型的数据。
3、exclude:include可以指定返回类型,而exclude则可以指定不返回某种类型,即返回除指定类型之外的数据。
参考资料来源:python API-describe
参考资料来源:百度百科-四分位数
参考技术B python pandas describe 怎么没有描述性统计了你遇到的问题一看就是少装了包。在windows下安装pandas,只安装pandas一个包显然是不够的,它并没有把用到的相关包都打进去,这点是很麻烦的,只有等错误信息出来后才知道少了哪些包。
我总结了一下,一共需要安装如下包:
pyparsing-2.0.2.win32-py2.7.exe
matplotllib-1.3.1.win32-py2.7.exe
openpyxl-openpyxl-5d2c0c8704d2.tar.gz
setuptools-3.8.1.win32-py2.7.exe
numpy-MKL-1.8.1.win32-py2.7.exe
six-1.7.3.win32-py2.7.exe
python-dateutil-2.2.win32-py2.7.exe 参考技术C 将数据从小到大排列,处在1/4点和3/4点的数字,类似中位数也就是50%
count 计数, mean 平均值, std 标准差, min 最小值, 25% 下四分位, 50% 中位数, 75% 上四分位, max 最大值 参考技术D If you go a quarter way through the list, you'll find a number that is bigger than 25% of the values and smaller than 75% of the values. That is the 25% value (pronounced "25th percentile"). The 50th and 75th percentiles are defined analgously.
Python:Pandas学习
1 import pandas as pd 2 import numpy as np 3 s = pd.Series([1, 3, 6, np.nan, 44, 1]) 4 5 df= pd.DataFrame(np.random.random((4,5))) 6 7 # data frame 常用属性 8 df.dtypes 9 df.index 10 df.columns 11 df.values 12 13 # data frame 常用方法 14 df.describe() 15 df.T 16 df.sort_index(axis = 1, ascending = False) 17 df.sort_values(by = 4) 18 19 # 选择数据 20 dates = pd.date_range(‘20160101‘, periods = 6) 21 df = pd.DataFrame(np.arange(24).reshape((6,4)), index = dates, 22 columns = [‘A‘, ‘B‘, ‘C‘, ‘D‘]) 23 24 ‘‘‘row or column‘‘‘ # 行不可隔着选择 25 print(df[0:3]) 26 print(df[[‘A‘, ‘D‘]]) 27 28 ‘‘‘select by label:loc‘‘‘ # 行不可隔着选择 29 print(df.loc[‘20160101‘, :]) 30 print(df.loc[:,[‘A‘, ‘B‘]]) 31 32 ‘‘‘select by position:iloc‘‘‘ 33 print(df.iloc[[0, 2], [0, 3]]) 34 35 ‘‘‘mixed selection:ix‘‘‘ 36 print(df.ix[[0, 2], [‘A‘, ‘D‘]]) 37 38 ‘‘‘Boolean indexing‘‘‘ 39 print(df[df.B > 5]) 40 41 # 设置数据 42 df.iloc[2, 2] = 111 43 df.loc[‘20160101‘, ‘D‘] = 222 44 df.B[df.A > 5] = 0 45 print(df) 46 47 df[‘F‘] = np.nan 48 df[‘E‘] = range(6) 49 print(df) 50 51 # 处理缺失数据 52 df.iloc[0, 1] = np.nan 53 df.iloc[1, 2] = np.nan 54 print(df) 55 print(df.dropna(axis = 0, how = ‘all‘)) # how = {‘any‘, ‘all‘} 56 print(df.fillna(value = 0)) 57 print(np.any(df.isnull())) 58 59 # data frame 合并 60 ‘‘‘concatenating‘‘‘ 61 df1 = pd.DataFrame(np.ones((3,4))*0, columns = [‘a‘, ‘b‘, ‘c‘, ‘d‘]) 62 df2 = pd.DataFrame(np.ones((3,4))*1, columns = [‘a‘, ‘b‘, ‘c‘, ‘d‘]) 63 df3 = pd.DataFrame(np.ones((3,4))*2, columns = [‘a‘, ‘b‘, ‘c‘, ‘d‘]) 64 65 res = pd.concat([df1, df2, df3], axis = 0, ignore_index = True) 66 res1 = pd.concat([df1, df2, df3], axis = 1) 67 68 ‘‘‘join参数‘‘‘ 69 df1 = pd.DataFrame(np.ones((3,4))*0, columns = [‘a‘, ‘b‘, ‘c‘, ‘d‘], index = [1, 2, 3]) 70 df2 = pd.DataFrame(np.ones((3,4))*1, columns = [‘b‘, ‘c‘, ‘d‘, ‘e‘], index = [2, 3, 4]) 71 72 res = pd.concat([df1, df2], join = ‘outer‘, ignore_index = True) 73 res = pd.concat([df1, df2], join = ‘inner‘, ignore_index = True) 74 print(res) 75 76 ‘‘‘join_axes‘‘‘ 77 res = pd.concat([df1, df2], axis = 1, join = ‘inner‘) 78 res = pd.concat([df1, df2], axis = 1, join_axes = [df1.index]) 79 80 # append 81 df1 = pd.DataFrame(np.ones((3,4))*0, columns = [‘a‘, ‘b‘, ‘c‘, ‘d‘], index = [1, 2, 3]) 82 df2 = pd.DataFrame(np.ones((3,4))*1, columns = [‘b‘, ‘c‘, ‘d‘, ‘e‘], index = [2, 3, 4]) 83 df3 = pd.DataFrame(np.ones((3,4))*1, columns = [‘b‘, ‘c‘, ‘d‘, ‘e‘], index = [2, 3, 4]) 84 85 res = df1.append([df2, df3], ignore_index = True) 86 res1 = pd.concat([df1, df2, df3]) 87 print(res) 88 print(res1) 89 90 # data frame merge 91 ‘‘‘merge one key‘‘‘ 92 left = pd.DataFrame({‘key‘:[‘K1‘,‘K2‘,‘K3‘], 93 ‘A‘:[1,2,3], 94 ‘B‘:[4,5,6]}) 95 96 right = pd.DataFrame({‘key‘:[‘K0‘,‘K1‘,‘K3‘], 97 ‘A‘:[11,43,53], 98 ‘D‘:[12,-1,0]}) 99 res = pd.merge(left, right, on = ‘key‘, how = ‘outer‘) 100 print(res) 101 102 ‘‘‘merge two or more keys‘‘‘ 103 left = pd.DataFrame({‘key0‘:[‘K1‘,‘K2‘,‘K3‘], 104 ‘key1‘:[‘X0‘,‘X2‘,‘X3‘], 105 ‘A‘:[1,2,3], 106 ‘B‘:[4,5,6]}) 107 108 right = pd.DataFrame({‘key0‘:[‘K0‘,‘K1‘,‘K3‘], 109 ‘key1‘:[‘X1‘,‘X0‘,‘K3‘], 110 ‘A‘:[11,43,53], 111 ‘D‘:[12,-1,0]}) 112 res = pd.merge(left, right, on = [‘key0‘, ‘key1‘], how = ‘outer‘) 113 print(res) 114 115 ‘‘‘merge index‘‘‘ 116 left = pd.DataFrame({‘A‘:[1,2,3], 117 ‘B‘:[4,5,6]}, 118 index = [‘K0‘, ‘K1‘, ‘K2‘]) 119 120 right = pd.DataFrame({‘A‘:[11,43,53], 121 ‘D‘:[12,-1,0]}, 122 index = [‘K1‘, ‘K2‘, ‘K3‘]) 123 res = pd.merge(left, right, left_index = True, 124 right_index = True) 125 print(res) 126 127 ‘‘‘handle overlapping columns‘‘‘ 128 left = pd.DataFrame({‘key‘:[‘K1‘,‘K2‘,‘K3‘], 129 ‘A‘:[1,2,3], 130 ‘B‘:[4,5,6]}) 131 132 right = pd.DataFrame({‘key‘:[‘K0‘,‘K1‘,‘K3‘], 133 ‘A‘:[11,43,53], 134 ‘B‘:[12,-1,0]}) 135 res = pd.merge(left, right, on = ‘key‘, 136 suffixes = [‘_left‘, ‘_right‘] , how = ‘outer‘) 137 print(res) 138 139 # 作图 140 import pandas as pd 141 import numpy as np 142 import matplotlib.pyplot as plt 143 144 ‘‘‘plot data‘‘‘ 145 ‘‘‘Series‘‘‘ 146 data = pd.Series(np.random.randn(1000), index = np.arange(1000)) 147 data = data.cumsum() 148 data.plot() 149 print(data) 150 151 ‘‘‘Data Frame‘‘‘ 152 data = pd.DataFrame(np.random.randn(1000, 4), 153 index = np.arange(1000), 154 columns = list("ABCD")) 155 print(data.head()) 156 data = data.cumsum() 157 data.plot() 158 ax = data.plot.scatter(x = ‘A‘, y = ‘C‘, 159 color = ‘Red‘, 160 label = ‘Class 2‘) 161 data.plot.scatter(x = ‘A‘, y = ‘B‘, 162 color = ‘DarkGreen‘, 163 label = ‘Class 2‘, 164 ax = ax)
以上是关于python pandas中describe()各项含义及求值的主要内容,如果未能解决你的问题,请参考以下文章
pandas.DataFrame.describe() 在 .py 脚本中没有输出