python - 如何基于一列计算和应用 z 分数,并将其应用于 Pyhton 中的同一列?
问题描述
我有一个包含 5 列的熊猫数据框:X、YZ、Value1、Value2。
我想根据列值 1 计算 Z 分数,然后应用它。我不知道如何正确地做到这一点。我都试过了
from scipy import stats
z_score = np.abs(stats.zscore(df["Value1"]))
df["Value1"] = df["Value1"][(z_score < 3).all(axis=1)]
和
from scipy.stats import zscore
df["Value1"].apply(zscore)
但非似乎工作正常。不知道该怎么做,因为我要么键入
KeyError: False 或 IndexError: 元组索引超出范围。
解决方案
只需分配一个名为“z_score”的列并将其用于过滤。
df['z_score'] = np.abs(stats.zscore(df["Value1"]))
df.query('z_score > 3', inplace=True) # If filter all DF.
df['Value1'] = df['Value1'].mask(df['z_score'] > 3) # If filter by masking.
推荐阅读
- node.js - APP Engine Google Cloud Storage - 下载文件时出现错误 500
- reactjs - 如何使用 Microsoft Authentication Library (MSAL) 在 Cypress 中测试登录
- angular - 如何从firebase获取嵌套的json数据?
- javascript - JavaScript 发布并等待响应 JSON
- python - Plotly:如何反转轴?
- spring-boot - Spring Boot Service Junit Mockito 问题
- reactjs - React Semantic UI Table Cell 不响应 onClick
- daml - 如何通过JSonApi从Daml中查询Map值?
- neo4j - 逗号分隔的 MATCH 和多 MATCH 之间的区别
- c++ - 第一次尝试使用new动态创建struct数组,程序挂起无误