pandas算术运算、逻辑运算、统计运算describe()函数、统计函数、累计统计函数及自定义函数运算
创始人
2024-02-17 19:01:32
0

一、pandas算术运算

直接对数据进行加、减、乘、除等运算,可使用函数add()、sub()、mul()、div()或+、-、×、÷

代码如下

数据生成
import pandas as pd
import numpy as np# 数据生成代码
num = np.random.randint(50, 100, (3, 5))# 传入标签索引
column = ['第一列', '第二列', '第三列', '第四列', '第五列']   # 列标签索引
# ind = ['第一行', '第二行', '第三行']    # 行标签索引
ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data2 = pd.DataFrame(num, columns=column, index=ind)
data2
---------------------------------------------------
data2['第二列'].add(10)   # 第二列的值加10data2['第二列'].sub(10)   # 第二列的值减10data2['第二列'] - 20     # 第二列的值减20data2['第二列'] / 2   # 第二列的值除2

 二、pandas逻辑运算

2.1 运算符合

使用>、<、=、&、|、~等运算符对数据进行筛选

使用示范代码如下

# 数据生成
import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['语文', '数学', '英语', '物理', '政治']   # 列标签索引
# ind = ['name1', 'name2', 'name3']    # 行标签索引
ind = ['name' + str(i) for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data3 = pd.DataFrame(num, columns=column, index=ind)
data3
-------------------------------------------
data3['数学'] >= 90  # 逻辑判断data3[data3['数学'] >= 90]  # 使用判断结果作为筛选依据data3[(data3['数学'] >= 90) | (data3['语文'] >= 90)]   # 多个逻辑判断,每个逻辑要使用括号括起来

操作如下

2.2 运算函数

  • query(expr):根据要评估的条件进行过滤查询
    • expr:查询字符串
  • isin(values):对指定values值进行逻辑判断

具体使用代码如下 

data3.query('数学 >= 90 | 语文>= 90')   # 多个逻辑判断,条件要加上引号data3.query('~(语文 >= 90)')   # ~为非,即取反,条件要加上引号data3[data3['数学'].isin([60, 92, 99])]  # 判断是否在指定值中并筛选

操作演示如下 

三、统计运算

3.1 describe()函数

  • describe():综合分析,能够直接得出很多统计结果,用来返回series和DataFrame两个核心数据结构的统计变量,如countmeanstdminmax 等,含义如下
    • count:统计元素个数,此列共有多少有效值
    • mean:均值
    • std:标准差
    • min:最小值
    • 25%、50%、75%:返回数组的三个不同百分位置的数值,即统计学中的四分位数,其中50%对应的是中位数,分别为四分之一分位数、二分之一分位数、四分之三分位数
    • max:最大值

3.2  统计函数

对单个函数进行统计的时候,坐标轴按默认列,即axis=0统计,如要对行统计,需要指定axis=1,如sum(1)

函数方法含义功能
count()非空元素个数
sum()值的总和
mean()平均值
median()中位数
min()最小值
max()最大值
mode()模式,每一列/行按从小到大显示
abs()绝对值
prod()价值的乘积,每一列/行的每个数相乘
std()标准差
var()均方差
idxmax()计算具有最大值的索引标签
idxmin()计算具有最小值的索引标签

代码如下

import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['语文', '数学', '英语', '物理', '政治']   # 列标签索引
# ind = ['name1', 'name2', 'name3']    # 行标签索引
ind = ['name' + str(i) for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data3 = pd.DataFrame(num, columns=column, index=ind)
data3data3.count()  # 每一列的元素个数
data3.sum()
data3.mean()   # 每一列的均值
data3.median()   # 每一列的中位数
data3.min()   # 每一列的最小值
data3.max()   # 每一列的最大值
data3.mode()   # 每一列按从小到大显示
data3.abs()   # 绝对值
data3.prod()   # 每一列中的数相乘
data3.std()   # 标准差
data3.var()   # 均方差,标准差的平方
data3.idxmin()   # 计算具有最小值的索引标签
data3.idxmax()  # 计算具有最大值的索引标签data3.sum(1)  # 计算每一行的和,不填1默认为0,即统计列
data3.mean(1)  # 计算每一行的均值

操作演示如下

3.3 累计统计函数

函数作用
cumsum()计算前1/2/3/…/n个数的和
cummax()计算前1/2/3/…/n个数的最大值
cummin()计算前1/2/3/…/n个数的最小值
cumprod()计算前1/2/3/…/n个数的积

代码如下

import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['语文', '数学', '英语', '物理', '政治']   # 列标签索引
# ind = ['name1', 'name2', 'name3']    # 行标签索引
ind = ['name' + str(i) for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data4 = pd.DataFrame(num, columns=column, index=ind)
data4
-----------------------------------------------
data4['数学'].cumsum()  # 计算指定列中前n个数的和
data4.cumsum()   # 计算前1/2/3/…/n个数的和
data4.cummax()   # 计算前1/2/3/…/n个数的最大值
data4.cummin()   # 计算前1/2/3/…/n个数的最小值
data4.cumprod()   #计算前1/2/3/…/n个数的积
84*90*84

演示操作如下

 3.4 自定义运算

  • apply(func, axis=0):自动根据func遍历每一个数据,然后返回一个数据结构为Series的结果
    • func:自定义函数
    • axis:取0默认是列,axis=1为行

代码及操作如下

data4.apply(lambda i : i.max() - i.min())  # 求每一列中最大值与最小值的差

学习导航:http://xqnav.top/

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...