描述性统计的概述与计算
df=pd.DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],index=['a','b','c','d'],columns=['one','two'])
print(df)
print(df.sum())
print(df.sum(axis=1))
print(df.sum(axis=1,skipna=False)) # 禁止略过NAN
idxmax,idxmin:返回的是间接统计信息,比如最小值,最大值的索引值
# 返回的分别是是每一列的最大值、最小值所在的索引标签
print(df.idxmax())
print(df.idxmin())
唯一值,计数,成员属性
唯一值
obj=pd.Series(['c','a','d','a','a','b','b','c','c'])
uniques=obj.unique()
print(uniques)
结果输出
[‘c’ ‘a’ ‘d’ ‘b’]
计数
print(obj.value_counts())
print(pd.value_counts(obj.values,sort=False))
结果输出
a 3
c 3
b 2
d 1
dtype: int64
d 1
c 3
b 2
a 3
dtype: int64
成员属性 isin
obj=pd.Series(['c','a','d','a','a','b','b','c','c'])
mask=obj.isin(['a'])
print(mask)
结果输出
0 False
1 True
2 False
3 True
4 True
5 False
6 False
7 False
8 False
dtype: bool
想要计算DataFrame多个相关列的直方图(每一个属性在每一个列中出现的次数)
data=pd.DataFrame({'Qu1':[1,2,4,3,4],'Qu2':[2,3,1,2,3],'Qu3':[1,5,2,4,4]})
print(data)
result=data.apply(pd.value_counts).fillna(0)
print(result)
结果显示
Qu1 Qu2 Qu3
0 1 2 1
1 2 3 5
2 4 1 2
3 3 2 4
4 4 3 4
###################################
Qu1 Qu2 Qu3
1 1.0 1.0 1.0
2 1.0 2.0 1.0
3 1.0 2.0 0.0
4 2.0 0.0 2.0
5 0.0 0.0 1.0
结果显示的最后一个矩阵,行标签是所有列中出现的不同值,数值则是这些不同值在每个列中出现的次数。