pandas学习笔记13

map,apply,applymap

**

python 复制代码
apply:应用在DataFrame的行或列中;
applymap:应用在DataFrame的每个元素中;
map:应用在单独一列(Series)的每个元素中。

**

apply()方法

前面也说了apply方法是一般性的"拆分-应用-合并"方法。 apply()将一个函数作用于DataFrame中的每个行或者列 它既可以得到一个经过广播的标量值,也可以得到一个相同大小的结果数组。我们先来看下函数形式:

python 复制代码
df.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)

func : 函数应用于每一列或每一行

axis: 0或"索引":将函数应用于每一列。 1或"列":将函数应用于每一行。

python 复制代码
df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
# 1或"列":将函数应用于每一行。
df.apply(np.sum, axis=1)#获取每行的总和

可以设置一个def方法,用其对进行运算

python 复制代码
def cal_result(df, x, y):
    df['C'] = (df['A'] + df['B']) * x
    df['D'] = (df['A'] + df['B']) * y
    return df
df.apply(cal_result, x=3, y=8, axis=1)

在这里我们先定义了一个 cal_result 函数,它的作用是计算 A,B 列和的 x 倍和 y 倍添加到 C,D 列中。这里有三种方式可以完成参数的赋值,

第一种方式直接通过关键字参数赋值,指定参数的值;

第二种方式是使用 args 关键字参数传入一个包含参数的元组;

python 复制代码
df.apply(cal_result, args=(3, 8), axis=1) 

第三种方式传入通过 ** 传入包含参数和值的字典

python 复制代码
df.apply(cal_result, **{'x': 3, 'y': 8}, axis=1)

apply的使用是很灵活的,再举一个例子,配合 loc 方法我们能够在最后一行得到一个总和:

python 复制代码
df.loc[2] = df.apply(np.sum)
df

applymap()方法

该方法针对DataFrame中的元素进行操作,还是使用这个数据: df.applymap(func)

applymap方法操作的是其中的元素,并且是对整个DataFrame进行了格式化,我们也可以选择行或列中的元素:
df[['A']]
特别注意:

python 复制代码
df['A'].applymap(lambda x: '%.2f'%x)  # 异常 

需要注意的是这里必须使用 df\['A'] ,表示这是一个DataFrame,而不是一个Series,如果使用 df'A' 就会报错。同样从行取元素也要将它先转成DataFrame。还需要注意apply方法和applymap的区别:

apply方法操作的是行或列的运算,而不是元素的运算,比如在这里使用格式化操作就会报错;

applymap方法操作的是元素,因此没有诸如axis这样的参数,它只接受函数传入。

map()方法

如果你对applymap方法搞清楚了,那么map方法就很简单,说白了map方法是应用在Series中的,还是举上面的例子

python 复制代码
# 注意Series没有applymap方法
df['A'].map(lambda x: '%.2f'%x)
相关推荐
旖旎夜光2 分钟前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
星恒随风11 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
§ꦿCFོ༉12 小时前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习
2603_9696948514 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
可乐ea14 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
Go Work18 小时前
两个等值条件摆着,MySQL 偏要全表扫
经验分享·笔记
Oll Correct18 小时前
Adobe illustrator 案例十四:花元素标志草图绘制
笔记·ui·adobe·illustrator
北京云帆互联科技20 小时前
云帆培训考试系统更新说明:v9.3.0
java·学习
sxlishaobin1 天前
Maven Setting详解
java·学习·maven
每月一号准时摆烂1 天前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记