📜  Pandas DataFrame.transform(1)

📅  最后修改于: 2023-12-03 15:03:28.241000             🧑  作者: Mango

Pandas DataFrame.transform

DataFrame.transform是Pandas中一个用于执行一组函数并返回原始DataFrame的变换器。它通常是用来转换数据,例如将缺失的值填充为平均值或中位数等。

语法
DataFrame.transform(func, *args, **kwargs)

参数:

  • func: 函数或可调用对象。它的第一个参数必须是字符串、数字或者任何其他变量类型。返回值必须与输入的参数类型相同。
  • *args: 任意多个位置参数传递给func函数。
  • **kwargs: 任意多个关键字参数传递给func函数。
示例
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
})

# 对每列进行填充
df.transform(lambda x: x.fillna(x.mean()))

# 对A,B列进行翻倍,对C列求平均值
df.transform({
    'A': lambda x: x * 2,
    'B': lambda x: x * 2,
    'C': 'mean'
})

以上代码的输出为:

     A   B      C
0  1.0  10  100.0
1  2.0  20  200.0
2  3.0  30  300.0
3  4.0  40  400.0
4  5.0  50  500.0


    A    B      C
0   2   20  200.0
1   4   40  200.0
2   6   60  200.0
3   8   80  200.0
4  10  100  200.0

在第一个示例中,df.transform(lambda x: x.fillna(x.mean()))中提供了一个lambda函数,用于将每列中的NaN值替换为该列的平均值。

在第二个示例中,df.transform({'A': lambda x: x * 2, 'B': lambda x: x * 2, 'C': 'mean'})这里使用了一个字典来指定应用于每列的函数。对于A列和B列,我们使用lambda函数将所有值翻倍,对于C列,我们使用字符串'mean'指定应用于该列的函数为求平均值函数。

以上就是 Pandas DataFrame.transform 的详细介绍。