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,就可以实现对不同的列填充不同的值。这样就完成了。

参考技术A

python 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 describe()没有显示

Pandas基本操作

pandas.DataFrame.describe() 在 .py 脚本中没有输出

Pandas df.describe() - 如何将值提取到 Dataframe 中?

Python机器学习(九十二)Pandas 统计

pandas.DataFrame.describe() 与 numpy.percentile() NaN 处理