pandas dataframe dataframe.transform()函数
python pandas dataframe.transform() 在 dataframe
上应用一个函数并转换 dataframe
。要应用的函数作为参数传递给 transform()
函数。变换后的 dataframe
的轴长度应该与原始 dataframe
相同。
pandas.dataframe.transform()
的语法
dataframe.transform(func, axis, *args, **kwargs)
参数
func |
它是应用于 dataframe 的函数。它使 dataframe 的值发生变化。它可以是一个函数,函数名字符串,函数或函数名列表,或轴标签的字典。 |
axis |
它是一个整数或字符串。它告诉目标轴的行或列。它可以是 0 或 index 代表行,1 或 columns 代表列。 |
*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 dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串