数值统计
利用.sum()进行求和
列求和,运算中NA值会自动排除
#求和统计
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())
若想进行行求和统计,在参数处修改axis为1(或columns)
print(df.sum(axis=1))
若参数处注明不跳过NA,运算中值将会被NA“吞噬”(同化nan)
print(df.sum(axis=1,skipna=False))
其他数值统计
#均值
print(df.mean())
#最大最小值的索引值:最大的在第几行
print(df.idxmax())
print(df.idxmin())
#返回每一列的最大值最小值
print(df.max())
print(df.min())
更多的数值统计函数
唯⼀值、值计数以及成员资格
什么是唯一值:即去重
什么是值计数:即频数
什么是成员资格:即取子集运算
利用unique对序列去重,生成新序列。字符串形式的NaN与生成的真正NaN是不会合并去重的。
obj = pd.Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c','NaN','NaN',np.nan,np.nan])
print(obj)
print(obj.unique())
#['c' 'a' 'd' 'b' 'NaN' nan]
#除非提前转化
obj=obj.replace('NaN',np.nan)
print(obj.unique())
#['c' 'a' 'd' 'b' nan]
利用value_count计算频数
#计算频数
print(obj.value_counts())
#a 3
#c 3
#b 2
#d 1
#会将字符串NaN算进去而不将真正NaN算进去
利用isin检查子集情况。输出与原序列同样长度的序列,与子集(序列形式)一致则为T,不一致则为F
#子集匹配
print(obj.isin(['b','c']))#序列顺序不影响
print(obj.isin(['c','c']))#重复值不影响
print(obj.isin(['c',np.nan]))#NaN正常匹配
#子集挑选
print(obj[obj.isin(['b','c'])])#挑选符合子集的部分
#0 c
#5 b
#6 b
#7 c
#8 c
补充:apply执行的是列重复运算,把需要执行的函数放入apply即可