python-3.x - 如何根据组将值归入异常单元格?
问题描述
我有一个带有一些值的熊猫数据框
#| X | Y | Value1 | Value2 |
---------------------------
1| 2 | 4 | 10 | 3 |
2| 2 | 4 | 3 | 2 |
3| 2 | 4 | 1 | 4 |
4| 4 | 5 | 5 | 20 |
5| 4 | 5 | 3 | 2 |
6| 5 | 6 | 1 | 2 |
7| 4 | 5 | 4 | 3 |
----------------------------
目标是为 Value1 和 Value2 列估算相似组的值(基于 X、Y 值)。
例如 X=2,Y=4 的值为 1, 3, 10 的值为 1。使用中值插补我想用 3 替换 10,因为 3 是中值。同样,对于 X=4、Y=5,Value2 列的值为 2、3、20。我想用中位数 3 替换 20。
注意:这里将 10 和 20 视为异常值。
解决方案
使用来自 n1k31t4 的以下答案:https ://datascience.stackexchange.com/questions/37717/imputation-missing-values-other-than-using-mean-median-in-python 我能够解决我的问题。
df[col]=df.groupby(['X', 'Y'])[col].transform(lambda x: x.median() if (np.abs(x)>3).any() else x)
推荐阅读
- java - 更新包含用户组的 jList 以将其显示给所有连接的用户
- go - Go 的错误处理,退货的最佳实践
- azure-machine-learning-service - 删除并重新创建 Azure 机器学习工作区的注册表
- javascript - 有没有更有效的方法在 JavaScript 中使用 For 循环显示两个数组的总和?
- python - 绘制 multiIndex 列数据框
- javascript - 标记不响应某些触摸设备中的 on("click") 事件
- swiftui-navigationlink - 无法按下导航链接swiftui的边缘
- javascript - 如何使用 Firebase 身份验证修复登录错误
- flutter - 消费者不使用 Riverpod ChangeNotifier 重建 UI
- surveyjs - Surveyjs:获取以前的问题标题以生成问题