apply、map和applymap的区别和使用

本文详细介绍了Pandas中apply、map和applymap三个函数的区别及用法。apply函数能对DataFrame的行或列应用函数,map函数主要针对Series对象,可接受函数或字典作为参数,而applymap则能作用于DataFrame的每个元素。通过实例展示了这三个函数如何在数据处理中发挥作用。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

pandas中apply、map、applymap三个函数的区别以及使用方式


一、apply函数

apply()可以作用在series对象上的每一个元素,对dataframe对象每一行或每一列执行函数

import pandas as pd
data = [[20, 30], [40, 50]]
index = [0, 1]
columns = ['A', 'B']
df = pd.DataFrame(data = data, columns = columns, index = index)
print(df)
print('-----------------------------')

# apply()作用在series对象上的每一个元素
print(type(df['A']))
df['A'] = df['A'].apply(lambda x : x+10)
print(df)

# apply()对dataframe对象上的每一行或每一列进行函数操作
# 进行列求和
df1 = df.apply(lambda x : x.sum(), axis = 0)
print(df1)
print('-----------------------------')
# 进行行求和
df2 = df.apply(lambda x : x.sum(), axis = 1)
print(df2)
   A   B
0  20  30
1  40  50
-----------------------------
<class 'pandas.core.series.Series'>
    A   B
0  30  30
1  50  50
A    80
B    80
dtype: int64
-----------------------------
0     60
1    100
dtype: int64

二、map函数

map()只能作用于series对象中的每一个元素,但是map()的参数可以是函数,也可以是字典

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = ['男', '女', '男']
index = ['张三', '李四', '王五']
columns = ['性别']
df = pd.DataFrame(data = data, index = index, columns = columns)
print(df)

def f(s):
    if(s == '男'):
        return 1
    else:
        return 0
# map中使用函数作为参数
df1 = df['性别'].map(f)
print(df1)
print('----------------------------')
# map中使用字典作为参数
df2 = df['性别'].map({'男' : 1, '女' : 0})
print(df2)
     性别
张三   男
李四   女
王五   男
张三    1
李四    0
王五    1
Name: 性别, dtype: int64
----------------------------
张三    1
李四    0
王五    1
Name: 性别, dtype: int64

三、applymap函数

applymap()可以作用于dataframe中的每一个元素,而apply()只能对dataframe中每一行或每一列作函数操作

import pandas as pd
data = [[20, 30], [40, 50]]
index = [0, 1]
columns = ['A', 'B']
df = pd.DataFrame(data = data, columns = columns, index = index)
print(df)

print('------------------')
df = df.applymap(lambda x : x+20)
print(df)
 A   B
0  20  30
1  40  50
------------------
    A   B
0  40  50
1  60  70

总结

apply可以作用于series对象中每一个元素,dataframe对象中的行或列操作
map仅可以作用于series对象,参数可以是字典或者函数
applymap可以作用于dataframe对象中的每一个元素

注意
apply和applymap对dataframe对象的作用和使用方式不同

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值