📅  最后修改于: 2023-12-03 15:03:28.241000             🧑  作者: Mango
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
的详细介绍。