DataFrame(9):DataFrame运算——基本统计函数

简介: DataFrame(9):DataFrame运算——基本统计函数

1、常用函数说明

image.png

在df中使用统计函数,其实很简单,我们主要关注以下3点,就没问题:

 ① 了解每个函数的具体含义是什么;

 ② 不管是Series还是DataFrame,默认都是自动忽略NaN值,进行运算的;

 ③ DataFrame有行、列区分,因此在使用统计函数的时候,一般是结合axis=0或者axis=1参数对df中的哪一行、哪一列进行操作;

注意:axis的具体含义,在操作DataFrame时极其重要,因此不要死记硬背,理解原理后,就永远忘记不了 。要记住不管是numpy还是pandas中,aixs的含义都是一致的。具体可以参考我之前的文章https://blog.csdn.net/weixin_41261833/article/details/103762874



2、sum、mean、count、max、min

 这五个函数属于最常用的几个函数,在mysql中叫做“聚合函数”(只不过mean在mysql中叫做avg),我们以sum函数为例进行说明。


df = pd.read_excel(r"C:\Users\黄伟\Desktop\test.xlsx",sheet_name=2)
display(df)
# 重置索引
df = df.set_index("name")
df.sum(axis=1)
df.sum(axis=0)


结果如下:

image.png


3、median、abs、mod、prod、var、std

# 我们就用一列来讲述这几个函数的用法
df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)
# 求该列数据的中位数
df["score"].median(axis=0)
# 求该列数据的每个值除以3得到的余数
df["score"].mod(3,axis=0)
# 求该列数据的连乘积
display(2*3*4*4*5*6*7*7*8)
df["score"].prod(axis=0)
# 求该列数据的方差
x = df["score"].var(axis=0)
display(x)
# 求该列数据的标准差
y = df["score"].std(axis=0)
display(y)
# 标准差等于方差的开方
np.sqrt(x) == y


结果如下:

image.png

注意:这一组函数中,需要注意的是mod函数的用法,里面需要传入一个值,作为除数。

 


4、argmax和idxmax、argmin和idxmin

 argmax和idxmax是一组,用于返回一组数据中最大值的下标。argmin和idxmin是一组,用于返回一组数据中最小值的下标。但是当我们使用argmax和argmin的时候,会出现一个提示,告诉我们这个函数以后会被idxmax和idxmin代替,因此我们只需要掌握idxmax和idxmin的用法即可。


df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)
df["score"].idxmax(axis=0)
df["score"].idxmin(axis=0)


结果如下:

image.png


5、unique:求一组数据中的唯一值

 对于unique的使用,需要特别注意。unique函数是针对Series的操作,是针对于df的某一行,或者某一列进行操作,因此没有axis参数。unique不仅可以针对数字去重,还可以针对字符串去重。


df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)
df["score"].unique()


结果如下:

image.png


6、value_counts:求一组数据中每个值出现的次数(很重要)

 value_counts不仅可以统计一组数字中,不同值出现的次数,还可以统计一组字符串中,不同值出现的次数。


df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)],
                   "eat_hand":["right","right","left","right","left","right","right","right","left"],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)
df["score"].value_counts()


结果如下:

image.png

相关文章
|
7月前
|
机器学习/深度学习 Python
pandas将dataframe列中的list转换为多列
在应用机器学习的过程中,很大一部分工作都是在做数据的处理,一个非常常见的场景就是将一个list序列的特征数据拆成多个单独的特征数据。
147 0
DataFrame(8):DataFrame运算——逻辑运算(用于筛选数据)(二)
DataFrame(8):DataFrame运算——逻辑运算(用于筛选数据)(二)
DataFrame(8):DataFrame运算——逻辑运算(用于筛选数据)(二)
|
1月前
|
Python
|
3月前
|
数据挖掘 Python
pandas中的groupby函数应用
pandas中的groupby函数应用
24 0
pandas中的groupby函数应用
DataFrame(8):DataFrame运算——逻辑运算(用于筛选数据)(一)
DataFrame(8):DataFrame运算——逻辑运算(用于筛选数据)(一)
DataFrame(8):DataFrame运算——逻辑运算(用于筛选数据)(一)
|
7月前
|
SQL 人工智能 数据处理
Pandas数据处理1、DataFrame删除NaN空值(dropna各种属性值控制超全)
Pandas数据处理1、DataFrame删除NaN空值(dropna各种属性值控制超全)
150 0
|
索引 Python
pandas把Series组合成DataFrame
pandas把Series组合成DataFrame
DataFrame(5):DataFrame元素的获取方式(很重要)(二)
DataFrame(5):DataFrame元素的获取方式(很重要)(二)
DataFrame(5):DataFrame元素的获取方式(很重要)(二)
DataFrame(10):DataFrame运算——累计统计函数
DataFrame(10):DataFrame运算——累计统计函数
DataFrame(10):DataFrame运算——累计统计函数
DataFrame(7):DataFrame运算——算术运算
DataFrame(7):DataFrame运算——算术运算
DataFrame(7):DataFrame运算——算术运算