pandas dataframe dataframe.transform()函数-ag捕鱼王app官网

pandas dataframe dataframe.transform()函数

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

python pandas dataframe.transform() 在 dataframe 上应用一个函数并转换 dataframe。要应用的函数作为参数传递给 transform() 函数。变换后的 dataframe 的轴长度应该与原始 dataframe 相同。


pandas.dataframe.transform() 的语法

dataframe.transform(func, axis, *args, **kwargs)

参数

func 它是应用于 dataframe 的函数。它使 dataframe 的值发生变化。它可以是一个函数,函数名字符串,函数或函数名列表,或轴标签的字典。
axis 它是一个整数或字符串。它告诉目标轴的行或列。它可以是 0index 代表行,1columns 代表列。
*args 这些是要传递给函数的位置参数
**kwargs 这些是传递给函数的附加关键字参数

返回值

它返回一个转换后的 dataframe,其长度与原始 “dataframe “相同。如果返回的 dataframe 具有不等长的长度,那么函数会引发 valueerror


示例代码:dataframe.transform()

我们先试试这个函数,在 dataframe 的每个值上加一个数字。

import pandas as pd
dataframe = pd.dataframe({
                            'a': 
                                {0: 6, 
                                1: 20, 
                                2: 80,
                                3: 78,
                                4: 95}, 
                            'b': 
                                {0: 60, 
                                1: 50, 
                                2: 7,
                                3: 67,
                                4: 54}
                        })
print(dataframe)

示例 dataframe 是:

    a   b
0   6  60
1  20  50
2  80   7
3  78  67
4  95  54
5  98  34

这个函数只有一个必须的参数,即 func。现在,我们将使用这个函数在 dataframe 的每个值上加 20。

import pandas as pd
dataframe = pd.dataframe(
    {"a": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "b": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func=lambda x: x  20)
print(dataframe1)

输出:

     a   b
0   26  80
1   40  70
2  100  27
3   98  87
4  115  74
5  118  54

lambda 关键字用于声明一个匿名的加法函数。


示例代码:dataframe.transform() 使用 sqrt 字符串作为函数

import pandas as pd
dataframe = pd.dataframe(
    {"a": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "b": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func="sqrt")
print(dataframe1)

输出:

          a         b
0  2.449490  7.745967
1  4.472136  7.071068
2  8.944272  2.645751
3  8.831761  8.185353
4  9.746794  7.348469
5  9.899495  5.830952

在这里,我们没有传递 lambda 函数,而是将函数名作为字符串传递。


示例代码:dataframe.transform() 传递函数列表

import pandas as pd
dataframe = pd.dataframe(
    {"a": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "b": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)
dataframe1 = dataframe.transform(func=["sqrt", "exp"])
print(dataframe1)

输出:

          a                       b              
       sqrt           exp      sqrt           exp
0  2.449490  4.034288e 02  7.745967  1.142007e 26
1  4.472136  4.851652e 08  7.071068  5.184706e 21
2  8.944272  5.540622e 34  2.645751  1.096633e 03
3  8.831761  7.498417e 33  8.185353  1.252363e 29
4  9.746794  1.811239e 41  7.348469  2.830753e 23

我们传递了一个由两个函数名组成的 “list”,即 ['sqrt', 'exp'] 作为 func。返回的 dataframe 包含了两个额外的列,因为有一个额外的函数。


dataframe.apply() vs dataframe.transform() 函数

我们也可以使用 dataframe.apply() 函数来实现上述结果。但如果我们比较一下这两个函数,就会发现 dataframe.transform() 函数在处理复杂的操作时更有效率。

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

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图