首页 > 其他分享 >Pandas教程之十三:在DataFrame中应用函数

Pandas教程之十三:在DataFrame中应用函数

时间:2024-11-29 20:01:55浏览次数:7  
标签:__ 教程 函数 df DataFrame add Pandas row

Python 是一种执行数据分析任务的优秀语言。它提供了大量的类和函数,有助于更轻松地分析和处理数据。在本文中,我们将了解如何将函数应用于Pandas Dataframe 中的每一行。

将函数应用于 Pandas DataFrame 中的每一行

有多种方法可以对 DataFrame 列执行逐元素操作。这里我们讨论一些对 DataFrame 列执行逐元素操作的示例,如下所示。

  • 将用户定义函数应用于Pandas DataFrame的每一行
  • Lambda应用于 DataFrame 的每一行
  • 对每一行应用NumPy.sum()
  • 使用 Pandas 中的自定义函数规范化 DataFrame 列值
  • 将范围生成函数应用于 Pandas 中的 DataFrame 行

可以使用apply()函数将函数应用于给定数据框中的每一行。让我们看看如何完成这项任务。

将用户定义函数应用于 Pandas DataFrame 的每一行

在此示例中,我们定义了一个函数add_values(row),用于计算每行“A”、“B”和“C”列中的值之和。在该main()函数中,根据字典创建一个 DataFrame,然后使用该方法将该函数应用于每一行,从而生成一个包含总和值的新列“add”。然后打印原始和修改后的 DataFrame。apply()

  • Python3

import pandas as pd

 

# Function to add

def add_values(row):

    return row['A'] + row['B'] + row['C']

 

def main():

    # Create a dictionary with three fields each

    data = {

        'A': [1, 2, 3],

        'B': [4, 5, 6],

        'C': [7, 8, 9]}

 

    # Convert the dictionary into DataFrame

    df = pd.DataFrame(data)

    print("Original DataFrame:\n", df)

 

    # Apply the user-defined function to every row

    df['add'] = df.apply(add_values, axis=1)

 

    print('\nAfter Applying Function: ')

    # Print the new DataFrame

    print(df)

 

if __name__ == '__main__':

    main()

输出

Original DataFrame:
    A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
After Applying Function: 
   A  B  C  add
0  1  4  7   12
1  2  5  8   15
2  3  6  9   18

将 Lambda 应用于 DataFrame 的每一行

在此示例中,我们定义了一个函数add(a, b, c),该函数返回其三个参数的总和。在该main()函数中,从字典创建一个 DataFrame,并使用apply()带有 lambda 函数的方法将新列“add”添加到 DataFrame。lambda 函数将add函数逐个元素应用于每一行的“A”、“B”和“C”列,并在应用函数之前和之后打印生成的 DataFrame。输出演示了将用户定义的函数应用于 DataFrame 的每一行。

  • Python3

# Import pandas package

import pandas as pd

# Function to add

 

def add(a, b, c):

    return a + b + c

 

def main():

    # create a dictionary with

    # three fields each

    data = {

        'A': [1, 2, 3],

        'B': [4, 5, 6],

        'C': [7, 8, 9]}

 

    # Convert the dictionary into DataFrame

    df = pd.DataFrame(data)

    print("Original DataFrame:\n", df)

 

    df['add'] = df.apply(lambda row: add(row['A'],

                                         row['B'], row['C']), axis=1)

 

    print('\nAfter Applying Function: ')

    # printing the new dataframe

    print(df)

 

if __name__ == '__main__':

    main()

输出

Original DataFrame:
    A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
After Applying Function: 
   A  B  C  add
0  1  4  7   12
1  2  5  8   15
2  3  6  9   18

对每一行应用 NumPy.sum()

您也可以使用 numpy 函数作为数据框的参数。在此示例中,我们从字典创建一个 DataFrame,然后使用with 方法将 NumPysum函数应用于每一行,从而生成一个新列“add”,其中包含每行值的总和。然后打印原始和修改后的 DataFrame,以演示该函数的应用。apply()axis=1

  • Python3

import pandas as pd

import numpy as np

 

def main():

    # create a dictionary with

    # five fields each

    data = {

        'A': [1, 2, 3],

        'B': [4, 5, 6],

        'C': [7, 8, 9]}

 

    # Convert the dictionary into DataFrame

    df = pd.DataFrame(data)

    print("Original DataFrame:\n", df)

 

    # applying function to each row in the dataframe

    # and storing result in a new column

    df['add'] = df.apply(np.sum, axis=1)

 

    print('\nAfter Applying Function: ')

    # printing the new dataframe

    print(df)

 

if __name__ == '__main__':

    main()

输出

Original DataFrame:
    A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
After Applying Function: 
   A  B  C  add
0  1  4  7   12
1  2  5  8   15
2  3  6  9   18

使用 Pandas 中的自定义函数规范化 DataFrame 列值

在这里,我们定义了一个normalize函数,该函数接受两个参数并根据它们的平均值和范围计算归一化值。在该main()函数中,从字典创建一个 DataFrame,然后normalize使用带有 lambda 函数的方法将该函数应用于每一行apply()。生成的 DataFrame 包含列“X”中的归一化值,并打印原始和修改后的 DataFrame。

  • Python3

# Import pandas package

import pandas as pd

 

def normalize(x, y):

    x_new = ((x - np.mean([x, y])) /

             (max(x, y) - min(x, y)))

 

    # print(x_new)

    return x_new

 

def main():

    # create a dictionary with three fields each

    data = {

        'X': [1, 2, 3],

        'Y': [45, 65, 89]}

 

    # Convert the dictionary into DataFrame

    df = pd.DataFrame(data)

    print("Original DataFrame:\n", df)

 

    df['X'] = df.apply(lambda row: normalize(row['X'],

                                             row['Y']), axis=1)

 

    print('\nNormalized:')

    print(df)

 

if __name__ == '__main__':

    main()

输出

Original DataFrame:
    X   Y
0  1  45
1  2  65
2  3  89
Normalized:
     X   Y
0 -0.5  45
1 -0.5  65
2 -0.5  89

将范围生成函数应用于 Pandas 中的 DataFrame 行

在此示例中,我们创建了一个函数,用于根据给定的整数输入创建一个范围,以及一个将函数逐个元素应用于 DataFrame 的每一行的函数。在该函数中,DataFrame 是根据字典创建的,然后使用带有 lambda 函数的方法将该函数应用于每一行,从而生成一个新的 DataFrame,其值由相应的范围替换。然后打印原始和修改后的 DataFrame。generate_rangereplacegenerate_rangemain()replaceapply()

  • Python3

import pandas as pd

import numpy as np

 

pd.options.mode.chained_assignment = None

 

# Function to generate range

 

def generate_range(n):

 

    # printing the range for eg:

    # input is 67 output is 60-70

    n = int(n)

 

    lower_limit = n//10 * 10

    upper_limit = lower_limit + 10

 

    return str(str(lower_limit) + '-' + str(upper_limit))

 

 

def replace(row):

    for i, item in enumerate(row):

 

        # updating the value of the row

        row[i] = generate_range(item)

    return row

 

def main():

    # create a dictionary with

    # three fields each

    data = {

        'A': [0, 2, 3],

        'B': [4, 15, 6],

        'C': [47, 8, 19]}

 

    # Convert the dictionary into DataFrame

    df = pd.DataFrame(data)

 

    print('Before applying function: ')

    print(df)

 

    # applying function to each row in

    # dataframe and storing result in a new column

    df = df.apply(lambda row: replace(row))

 

    print('After Applying Function: ')

    # printing the new dataframe

    print(df)

 

 

if __name__ == '__main__':

    main()

输出

Before applying function: 
   A   B   C
0  0   4  47
1  2  15   8
2  3   6  19
After Applying Function: 
      A      B      C
0  0-10   0-10  40-50
1  0-10  10-20   0-10
2  0-10   0-10  10-20

标签:__,教程,函数,df,DataFrame,add,Pandas,row
From: https://blog.csdn.net/xt14327/article/details/144120428

相关文章

  • 超详细 HarmonyOS 开发教程之开发环境搭建指南
    HarmonyOS开发环境搭建指南:DevEcoStudio安装教程一、系统要求操作系统:Windows1064位或更高版本RAM:至少8GB,推荐16GB硬盘空间:至少10GB可用空间处理器:IntelCorei5或更高配置二、安装步骤1.下载DevEcoStudio2.访问华为开发者联盟官网:https://developer.harmonyos.com......
  • JAVA基础教程---(一)JAVA语言概述
    JAVA基础教程JAVA语言概述前言JAVA之父JamesGosling团队在开发”Green”项目时,发现C缺少垃圾回收系统,还有可移植的安全性、分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类......
  • VS Code使用Git可视化管理源代码详细教程
    VSCode简介:官网下载地址:https://code.visualstudio.com/VisualStudioCode是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java......
  • 手把手教你安装Pycharm--Pycharm安装详细教程(非常详细、且实用)
    简介Jetbrains家族和Pycharm版本划分:pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJIDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(App......
  • IDEA 2024.3 安装激活教程(至2099年)
    IntelliJIDEA简介IntelliJIDEA是一款非常强大的Java集成开发环境(IDE),由JetBrains公司开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和部署代码。要求在开始之前,请确保您的计算机满足以下系统要求:操作系统:Windows、macOS或Linux处理器:至少1GHz的处理器......
  • AI绘画Stable Diffusion教程|SD Comfyui必备教程菜鸟轻松成高手云端部署 第五期如何下
    今天来教大家如何解决解决Comfyui本身的软件问题。大家都知道,‌SDcomfyui‌是一种基于节点的图形用户界面,专为StableDiffusion设计,用于构建和可视化机器学习工作流程,特别是在图像生成领域中非常受欢迎。SDcomfyui通过连接不同的功能节点来创建复杂的图像生成任务,这些节点代表......
  • Stable Diffusion4.9(SD)下载及安装教程
    NO.1软件下载软件名称:StableDiffusion4.9(SD)系统要求:Windows10或更高,64位操作系统下载链接:NO.2软件介绍StableDiffusion**StableDiffusion(简称SD)**是AI绘画领域的一个核心模型,能够进行文生图(txt2img)和图生图(img2img)等图像生成任务。是一款前沿AI绘画工具,用户......
  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!
        一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行......
  • 【Python学习】2024Python安装与配置IDE汉化集活的全套教程
    包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!【一】Python解释器下载【运行环境】【1】Python官网包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】![https://www.python.org](官网进不去的可以点击点击领取,100%免费!安装包)......
  • 2024年Python&pycharmIDE安装与配置汉化教程!
    【一】Python解释器下载【运行环境】包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!【1】Python官网[https://www.python.org](官网进不去的可以点击点击领取,100%免费!安装包)【2】Python各版本解释器官网【二】Windows系统安装Python解释器【1】......