python数据分析-pandas基础(4)-数据映射apply

简介: apply函数的作用:就是用某个指定的函数f来依次作用于DataFrame或者Series的每个数据,可以指定按行处理和按列处理。

今天我们分享一个非常常用且重要的pandas数据映射函数apply

我们在数据分析过程中,通常需要对原始的数据进行很多转换和处理,比如对于出生日期,我们希望获得年龄的特征;对于身高和体重的数据,我们希望或者BMI指数等等。

这种操作在分析过程是最常用的数据处理,这个过程涉及对一列或者多列数据进行操作。pandas中用apply函数来处理这个过程。

apply函数的作用:就是用某个指定的函数f来依次作用于DataFrame或者Series的每个数据,可以指定按行处理和按列处理。

我们看一个例子:

import pandas as pd
import numpy as np
data_df = pd.DataFrame({'name': ['jack', 'lili', 'abc'],
                      'birthday': ['2001-01-01', '2003-12-01', '2005-09-01'],
                      'height':[1.2, 1.5, 1.6],
                      'weight': [40, 50, 30]})

data_df['age'] = data_df['birthday'].apply(lambda x: (datetime.now().timestamp()-datetime.strptime(x, '%Y-%m-%d').timestamp())//86400/365)

data_df['age'] = data_df['age'].astype(int)

如果是计算逻辑比价简单的,处理逻辑可以通过lambda函数进行处理;比如上面的例子中通过出生日期计算年龄。默认情况下apply传入函数的参数为series(按列),映射函数对每一列的每一行数据执行函数操作。

也可以定义一个函数来代替lambda,如下cal_age代替:


def cal_age(x):
    age_ts = datetime.now().timestamp() - datetime.strptime(x, '%Y-%m-%d').timestamp()
    return age_ts // 86400 / 365

data_df['age'] = data_df['birthday'].apply(cal_age).astype(int)

如果数据处理需要多个数据,比如计算BMI指数需要升高和体重。


def bmi(x):
    return x['weight'] / x['height'] ** 2

data_df['bmi'] = data_df[['height', 'weight']].apply(bmi, axis=1)

从上可知,计算多列数据时,apply传入映射函数的参数为Series,通过axis指定按行还是按列,axis=1为按行,即每一行的多个列的值传入映射行数。以bmi例子,传入的是每个人的身高和体重参数。

apply函数就分享到这,希望对你有帮助。

目录
相关文章
|
25天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
1月前
|
存储 机器学习/深度学习 数据可视化
数据集中存在大量的重复值,会对后续的数据分析和处理产生什么影响?
数据集中存在大量重复值可能会对后续的数据分析和处理产生多方面的负面影响
115 56
|
1天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
10天前
|
数据采集 监控 数据挖掘
常用电商商品数据API接口(item get)概述,数据分析以及上货
电商商品数据API接口(item get)是电商平台上用于提供商品详细信息的接口。这些接口允许开发者或系统以编程方式获取商品的详细信息,包括但不限于商品的标题、价格、库存、图片、销量、规格参数、用户评价等。这些信息对于电商业务来说至关重要,是商品数据分析、价格监控、上货策略制定等工作的基础。
|
23天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
1月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
54 3
|
1月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
83 0
|
1月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析
|
1月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
88 4
数据分析的 10 个最佳 Python 库
|
4月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
93 2