迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

如何将函数应用到 Pandas Dataframe 中的某一列中去

作者:迹忆客 最近更新:2024/04/22 浏览次数:

在 Pandas 中,可以使用 apply()transform() 等方法对列和 DataFrame 进行转换和操作。所需的转换作为参数以函数的形式传递给这些方法。每种方法都有其细微的区别和作用。本文将介绍如何将一个函数应用于一列或整个 DataFrame。


Pandas apply()transform() 方法

apply()transform() 方法都是对单个列和整个 DataFrame 进行操作。apply() 方法沿着指定的轴应用函数。它将列作为 DataFrame 传递给自定义函数,而 transform() 方法将单个列作为 Pandas Series 传递给自定义函数。

apply() 方法的输出根据输入以 DataFrameSeries 的形式接收,而 transform() 方法则以 Series 的形式接收。apply()transform() 方法的语法都类似于:

Dataframe.apply(customFunction, axis=0)
Dataframe.transform(customFunction, axis=0)

参数对应于

  • customFunction:要应用于 DataFrame 或 Series 的函数。
  • axis:0 指的是行,1 指的是列,函数需要应用在行或列上。

使用 apply() 将函数应用于 Pandas DataFrame 列

现在我们已经掌握了基础知识,让我们动手编写代码,了解如何使用 apply() 方法将一个函数应用到 DataFrame 列。

我们将使用下面的 DataFrame 示例。

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)

将函数应用到整个 DataFrame 的示例代码如下所示。

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df = df.apply(add_2)
print(df)

输出:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A   B   C
0  3   4   5
1  6   7   8
2  9  10  11

如上图所示,函数可以应用于整个 DataFrame。

将函数应用于单列

让我们来看看当函数沿单列应用时会发生什么。

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df["A"] = df["A"].apply(add_2)
print(df)

# or #

df["A"].transform(add_2)
print(df)

输出:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A  B  C
0  3  2  3
1  6  5  6
2  9  8  9

使用 transform() 将一个函数应用到 Pandas DataFrame 列

让我们看看如何使用 transform() 方法将一个函数应用到一个 DataFrame 列。我们将使用与上面相同的 DataFrame 示例。

应用函数到整个 DataFrame 的示例代码如下所示。

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df = df.transform(add_2)
print(df)

输出:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A   B   C
0  3   4   5
1  6   7   8
2  9  10  11

如上图所示,函数可以应用到整个 DataFrame。

将函数应用于单列

让我们来看看当函数沿单列应用时会发生什么。

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=["A", "B", "C"])
print(df)


def add_2(x):
    return x + 2


df["A"] = df["A"].transform(add_2)
print(df)

输出:

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
   A  B  C
0  3  2  3
1  6  5  6
2  9  8  9

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

DataFrame 获取给定列的第一行

发布时间:2024/04/22 浏览次数:51 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 Series.loc()和 Series.iloc()方法获取给定列的第一行。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:186 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便