看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)人事部拿到 8 月 5 天的员工 KPI 表,数值列存在缺失:
import pandas as pd, numpy as np
df = pd.DataFrame({
"员工": ["张三", "李四", "王五", "赵六", "孙七"],
"销售额": [120, np.nan, 90, 110, 130],
"毛利": [30, 25, np.nan, 28, 35]
})
用 一行 transform()
直接作用在 DataFrame 上完成:
代码如下(一行搞定):
cols = ["销售额", "毛利"]
df[cols] = (df[cols]
.transform(lambda s: s.fillna(s.median()))
.transform(lambda s: (s - s.min()) / (s.max() - s.min())
)
)
print(df)
输出示例:
员工 销售额 毛利
0 张三 0.666667 0.333333
1 李四 0.500000 0.166667
2 王五 0.000000 0.333333
3 赵六 0.333333 0.222222
4 孙七 1.000000 1.000000
利用 transform 能广播的特性。
(完)
更新时间:2025-08-29 20:05:28 标签:pandas python transform 标准化