python数据分析apply(),map(),applymap()用法

当我们进行Python数据分析的时候,经常会需要进行数据清洗、过滤、分组等操作。在这些过程中,apply(),map(),applymap()是我们经常用到的三个函数。下面就详细讲解一下这三个函数的使用方法:

apply()函数

apply()函数是Pandas中自带的一个函数,可以用于对行或列进行函数操作。

语法格式

DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)

参数说明:

  • func:需要传入的函数
  • axis:0或1,0表示对列进行处理,1表示对行进行处理,默认为0
  • broadcast:不理解,可以忽略
  • raw:Boolean值,默认为False,表示操作的是否是原始数据
  • reduct:不理解可以忽略
  • result_type:新的数据类型
  • args:不理解可以忽略
  • kwds:关键字参数,可以通过他来传入更多自定义的参数

示例1

下面我们举一个示例说明apply()函数的使用方法,假设我们现在有一个DataFrame数据,数据形如:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [6, 7, 8, 9, 10]
})

我们希望对DataFrame的所有元素进行平方处理。那么可以采用如下方式:

def square(x):
    return x ** 2

df.apply(square)

在上面的代码中,我们首先定义了一个square函数,然后将这个函数作为apply()函数的参数进行传递。

示例2

下面我们举一个更加复杂,实际应用场景的示例,假设我们现在有一个存储股票数据的DataFrame数据,数据形如:

df = pd.DataFrame({
    'name': ['百度', '阿里巴巴', '腾讯', '美团点评', '拼多多'],
    'price': [210, 235, 310, 88, 42]
})

我们现在需要按照如下的规则对该数据进行处理:

  • 对于价格不足200的股票,我们需要减价20元
  • 对于价格在200到300之间的股票,我们需要减价10元
  • 对于价格超过300的股票,我们需要减价5元

那么可以采用如下方式:

def discount(price):
    if price < 200:
        return price - 20
    elif price >= 200 and price <= 300:
        return price - 10
    else:
        return price - 5

df['discount_price'] = df['price'].apply(discount)

在上面的代码中,我们首先定义了一个discount函数,然后将‘price’列中的元素分别传递给该函数进行处理,得到针对每一只股票的折扣价格,并将其存储在“discount_price”列中。

map()函数

map()函数和apply()函数类似,不同的是,map()函数只能用于Series类型的操作,而不能用于DataFrame。

语法格式

Series.map(arg, na_action=None)

参数说明:

  • arg:需要传入的函数,可以是一个函数,也可以是一个字典,这取决于Series类型的数据是不是字典类型
  • na_action:处理缺失值时采取的操作,可以是'ignore'或者'drop'

示例1

下面我们举一个示例说明map()函数的使用方法,假设我们现在有一个Series类型的数据,数据形如:

import pandas as pd

s = pd.Series(['apple', 'orange', 'banana', 'pear'])

我们希望将其中的每一个字符串元素分别转换成大写方式,可以采用如下方式:

s.map(str.upper)

在上面的代码中,我们首先定义了一个str.upper函数,然后将该函数作为map()函数的参数传递过去。

示例2

下面我们举一个更加复杂,实际应用场景的示例,假设我们现在有一个Series类型的数据,数据形如:

s = pd.Series(['a', 'b', 'a', 'c', 'a', 'd'])

我们现在需要实现一个字典类型的替换操作,将数据中的'a'替换成'apple',将'b'替换成'banana',将'c'替换成'pear',将'd'替换成'orange'。采用如下方式:

replace_dict = {
    'a': 'apple',
    'b': 'banana',
    'c': 'pear',
    'd': 'orange'
}

s.map(replace_dict)

在上面的代码中,我们首先定义了一个字典类型的替换关系表replace_dict,然后将该表作为map()函数的参数传递过去,实现了对Series数据的替换操作。

applymap()函数

applymap()函数和apply()函数非常相似,不同的是applymap()函数是用于对DataFrame中每个元素进行函数操作的。

语法格式

DataFrame.applymap(func)

参数说明:

  • func:需要传入的函数

示例1

下面我们举一个示例说明applymap()函数的使用方法,假设我们现在有一个DataFrame数据,数据形如:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [6, 7, 8, 9, 10]
})

我们希望对DataFrame的所有元素进行平方处理。可以采用如下方式:

df.applymap(lambda x: x ** 2)

在上面的代码中,我们采用了一个匿名函数lambda来实现对DataFrame所有元素的平方计算。

示例2

下面我们举一个更加复杂,实际应用场景的示例,假设我们现在有一个存储股票数据的DataFrame数据,数据形如:

df = pd.DataFrame({
    'name': ['百度', '阿里巴巴', '腾讯', '美团点评', '拼多多'],
    'price': [210, 235, 310, 88, 42]
})

我们现在需要按照如下的规则对该数据进行处理:

  • 对于价格不足200的股票,我们需要减价20元
  • 对于价格在200到300之间的股票,我们需要减价10元
  • 对于价格超过300的股票,我们需要减价5元

那么可以采用如下方式:

def discount(price):
    if price < 200:
        return price - 20
    elif price >= 200 and price <= 300:
        return price - 10
    else:
        return price - 5

df.applymap(discount)

在上面的代码中,我们首先定义了一个discount函数,然后将该函数作为applymap()函数的参数传递过去,实现了对DataFrame数据的折扣处理。

希望这份攻略对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python数据分析apply(),map(),applymap()用法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 使用python客户端访问impala的操作方式

    下面是使用Python客户端访问Impala的操作方式的完整攻略: 1. 安装Impyla 在使用Python客户端访问Impala之前,需要先安装Impyla包。可以使用pip安装,执行以下命令即可: pip install impyla 2. 连接到Impala 使用Impyla连接到Impala需要提供以下信息: Impala的主机名或IP地址 Imp…

    云计算 2023年5月18日
    00
  • Atitit 云计算体系树.docx Atitit 云计算之道 attilax著 艾龙 著 serverless bomb 1. 什么才是云计算的根本特征.. 2 2. 云计算体系 2 3. “云

    Atitit 云计算体系树.docx Atitit 云计算之道 attilax著 艾龙 著  serverless bomb   1. 什么才是云计算的根本特征.. 2 2. 云计算体系 2 3. “云”技术 147 3 3.1. 5.1.3 虚拟化与容器技术 160 5.1.4 远程桌面 1715.1.5 负载均衡 175 3 3.2. 5.1.11 SO…

    云计算 2023年4月10日
    00
  • MongoDB实战指南(一):大数据与云计算

    1.1 什么大数据 具体来说,大数据技术涉及到数据的创造,存储,获取和分析,大数据的主要特点有下面几个: 数据量大。一个典型的PC机载2000年前后其存储空间可能有10GB,今天facebook一天增加的数据量就将近有500TB;一架波音737的飞机绕美国飞行一周将会产生200TB的数据;移动互联网的发展,智能手机的普及,人们每时每刻都在产生数以万计的数据。…

    云计算 2023年4月11日
    00
  • 03云计算架构

    云计算的本质 云计算的本质是一切IT即服务 云计算为大数据提供计算平台 虚拟化是云计算的基石 云数据中心 构造主要有两种模式 传统模式 数据中心基于集装箱的数据中心,由Google首创 云工作负载模式 时开时停模式 用户迅速增长模式 瞬时暴涨模式 周期性增减模式 云计算架构 中央集权架构 客户机/服务器(C/S)架构 中间层架构 浏览器/服务器(B/S)架构…

    云计算 2023年4月11日
    00
  • vmware vsphere 6.5安装教程(图文)

    VMware vSphere 6.5安装教程(图文) 简介 VMware vSphere是一种虚拟化平台,可在单个物理服务器或任务规模的数据中心中运行多个虚拟机。该平台的最新版本是vSphere 6.5,下面是详细的安装教程。 步骤 步骤一:下载VMware vSphere 6.5 从VMware官网(https://www.vmware.com/cn/pr…

    云计算 2023年5月17日
    00
  • 亚马逊属于什么类型的电商平台

    亚马逊属于什么类型的电商平台 亚马逊是全球最大的电商平台之一,提供了广泛的商品和服务,包括图书、电子产品、家居用品、服装、食品等。根据其商业模式和经营策略,我们可以将亚马逊归类为以下几种类型的电商平台。 B2C电商平台 B2C电商平台是指面向消费者的电商平台,即企业直接向消费者销售商品和服务。亚马逊作为B2C电商平台,提供了广泛的商品和服务,消费者可以在亚马…

    云计算 2023年5月16日
    00
  • 云计算VS大数据 记与思

    云计算: 1、云计算->IT资源的拥有权和使用权的分离(资源归云计算中心所有,使用权归付费用户所有) 2、云平台的角色:聚合->平台->一种生态系统(如apple的app store、淘宝网等,平台演变成一种经济生态环境) 3、云计算和物联网类软件登记量带905和380件,同比增长200.66%和119.65,说明发展趋势很显著。但是(以北…

    云计算 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部