根据官方的定义来看,
简单来说
语法是这样的:DataFrame.describe(percentiles=None,include=None,exclude=None)
第一个参数percentiles是返回这组数据的count ,mean,std,min,max,还有百分位数。
简单来说就是数据的数量,方差,标准差,最大值,最小值,还有25%,50%,75%的百分位数或者是50%,根据版本语法规定。
举个例子:
import pandas as pd
df = pd.DataFrame(data={
'A':list('abaacdadaf'),
'B':[2,4,6,3,6,2,5,8,0,2]
})
print(df.describe(percentiles=()))
结果是这样的:
B
count 10.000000
mean 3.800000
std 2.440401
min 0.000000
50% 3.500000
max 8.000000
这里补充一点,百分位数是这样算的:
举个例子:你将我上面的数据排序后:[0, 2, 2, 2, 3, 4, 5, 6, 6, 8]
然后第50%位就是3,比3大一位的是4,返回的结果就是3.500000.
当然是可以定义其他值的,用法为df.describe(percentiles=[.xx])
include:类似于dtypes列表或None(默认值),就是选择出相关符合的值,举个例子
#还有一部分在上面就不复制下来了
print(df.describe(include='all'))
print(df.describe(include='O'))
print(df.describe(include=None))
设置参数为’all’则输入的所有列都在输出中,设置为O则只输出离散型变量的,如果为None的话,就根据cloums输出(结果将包括所有数字列。)当然,你在输出all的时候,要注意数据的长度是不是一样的
注意对于Series不可用!
当然你还可以这样处理,不过要先设置一些数据:
import pandas as pd
import numpy as np
df = pd.DataFrame(data={
'categracal':pd.Categorical(["a","g","e"]),
'numeric':[1,3,6],
"object":["r","D","T"]
})
print(df.describe(include=["category"]))
print(df.describe(include=[np.object]))
print(df.describe(include=[np.number]))
三个分别对应上面的:结果大家可以试一下。np.number是处理数字。。。。。
举一个简单的结果。。。
categracal
count 3
unique 3
top g
freq 1
参数的话,有一些改变,top是出现频率最高的。freq是重复的次数。unique表示几个是独一无二的
exclude:
当然你也可以用这个来排除,意思就是排除了两个,那么剩下的就是输出的,
比如说:
print(df.describe(exclude=[np.number,np.object]))
输出结果就是 categracal的分析。。。。。。