看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)HR 有一张 8 月前 7 天的员工绩效表,含缺失:
import pandas as pd, numpy as np
df = pd.DataFrame({
"日期": pd.date_range("2024-08-01", periods=7),
"部门": ["技术", "市场", "技术", "市场", "技术", "市场", "技术"],
"KPI": [85, np.nan, 78, 90, np.nan, 95, 88]
})
df
'''
日期 部门 KPI
0 2024-08-01 技术 85.0
1 2024-08-02 市场 NaN
2 2024-08-03 技术 78.0
3 2024-08-04 市场 90.0
4 2024-08-05 技术 NaN
5 2024-08-06 市场 95.0
6 2024-08-07 技术 88.0
'''
要求:
transform()
完成:KPI_z
并打印结果代码如下:
df['KPI_z'] = (
df.groupby('部门')['KPI']
.transform(lambda x: (x.fillna(x.mean()) - x.mean()) / x.std())
)
print(df)
输出示例:
日期 部门 KPI KPI_z
0 2024-08-01 技术 85.0 0.259828
1 2024-08-02 市场 NaN 0.000000
2 2024-08-03 技术 78.0 -1.104269
3 2024-08-04 市场 90.0 -0.707107
4 2024-08-05 技术 NaN 0.000000
5 2024-08-06 市场 95.0 0.707107
6 2024-08-07 技术 88.0 0.844441
(完)
更新时间:2025-08-26 17:13:04 标签:pandas python transform 标准化