IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [Pandas] apply() -> 正文阅读

[人工智能][Pandas] apply()

应用在DataFrame的行或列中,默认为列

apply()可以对DataFrame按行和列(默认)进行函数处理,也支持Series。如果是Series,逐个传入具体值,DataFrame逐行或逐列传入

import pandas as pd

df = pd.DataFrame([['liver','E',89,21,24,64],
                   ['Arry','C',36,37,37,57],
                   ['Ack','A',57,60,18,84],
                   ['Eorge','C',93,96,71,78],
                   ['Oah','D',65,49,61,86]
                  ], 
                   columns = ['name','team','Q1','Q2','Q3','Q4'])

# 将name列中的文本全部转换成小写
res1 = df.name.apply(lambda x:x.lower())

# 去掉一个最高分和一个最低分再算出平均分
def my_mean(s):
    max_min_ser = pd.Series([-s.max(), -s.min()])
    return s.append(max_min_ser).sum() / (s.count() - 2)

# 对数字列应用函数
res2 = df.select_dtypes(include = 'number').apply(my_mean)

# 同样的算法以学生为维度计算(计算每个学生的平均成绩)
# 在apply函数中传入axis = 1则每行的数据组成一个Series传入自定义函数中
# 设定name为索引
# 横向计算
res3 = df.set_index('name').select_dtypes(include = 'number').apply(my_mean, axis = 1) 

结果展示

df

res1

res2

res3

# 总结:apply()可以应用的函数类型如下:
df.apply(fun) # 自定义
df.apply(max) # Python内置函数
df.apply(lambda x:x*2) # lambda
df.apply(np.mean) # NumPy等其他库的函数
df.apply(pd.Series.first_valid_index) # Pandas自己的函数

扩展?

1.以下是一个判断一列数据是否包含在另一列数据中的案例

# 判断一个值是否在另一个类似列表的列中
df.apply(lambda d: d.s in d.s_list, axis = 1) # 布尔序列
df.apply(lambda d: d.s in d.s_list, axis = 1).astype(int) # 0和1序列

2.它常被用来与NumPy库中的np.where()方法配合使用,如下例子:

# 函数,将大于90分数标记为good
fun = lambda x: np.where(x.team == ‘A’ and x.Q1>90,’good’,’other’)
df.apply(fun,axis = 1)

# 效果同上
df.apply(lambda x:x.team == ‘A’ and x.Q1 > 90, axis = 1).map({True:’good’, False:’other’})
df.apply(lambda x:’good’ if x.team == ‘A’ and x.Q1 > 90 else ‘’, axis = 1)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:09:21  更:2022-02-19 01:11:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:39:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码