Pandas - 计算所有列的 z 分数

2023-12-02

我有一个包含单列 ID 的数据框,所有其他列都是我想要计算 z 分数的数值。这是其中的一个小节:

ID      Age    BMI    Risk Factor
PT 6    48     19.3    4
PT 8    43     20.9    NaN
PT 2    39     18.1    3
PT 9    41     19.5    NaN

我的一些列包含 NaN 值,我不想将其包含在 z 分数计算中,因此我打算使用针对此问题提供的解决方案:如何使用nans对pandas列进行zscore标准化?

df['zscore'] = (df.a - df.a.mean())/df.a.std(ddof=0)

我有兴趣将此解决方案应用于除 ID 列之外的所有列,以生成新的数据框,我可以使用以下命令将其保存为 Excel 文件

df2.to_excel("Z-Scores.xlsx")

所以基本上;如何计算每列的 z 分数(忽略 NaN 值)并将所有内容推送到新的数据框中?

旁注:pandas 中有一个叫做“索引”的概念,这让我感到害怕,因为我不太理解它。如果索引是解决此问题的关键部分,请简化对索引的解释。


Using Scipy Z 分数功能:

df = pd.DataFrame(np.random.randint(100, 200, size=(5, 3)), columns=['A', 'B', 'C'])
df

|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 | 163 | 163 | 159 |
|  1 | 120 | 153 | 181 |
|  2 | 130 | 199 | 108 |
|  3 | 108 | 188 | 157 |
|  4 | 109 | 171 | 119 |

from scipy.stats import zscore
df.apply(zscore)

|    |         A |         B |         C |
|---:|----------:|----------:|----------:|
|  0 |  1.83447  | -0.708023 |  0.523362 |
|  1 | -0.297482 | -1.30804  |  1.3342   |
|  2 |  0.198321 |  1.45205  | -1.35632  |
|  3 | -0.892446 |  0.792025 |  0.449649 |
|  4 | -0.842866 | -0.228007 | -0.950897 |

如果数据框的并非所有列都是数字,那么您可以使用以下命令将 Z 分数函数仅应用于数字列:select_dtypes功能:

# Note that `select_dtypes` returns a data frame. We are selecting only the columns
numeric_cols = df.select_dtypes(include=[np.number]).columns
df[numeric_cols].apply(zscore)

|    |         A |         B |         C |
|---:|----------:|----------:|----------:|
|  0 |  1.83447  | -0.708023 |  0.523362 |
|  1 | -0.297482 | -1.30804  |  1.3342   |
|  2 |  0.198321 |  1.45205  | -1.35632  |
|  3 | -0.892446 |  0.792025 |  0.449649 |
|  4 | -0.842866 | -0.228007 | -0.950897 |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas - 计算所有列的 z 分数 的相关文章

随机推荐

  • 表单获取方法:防止在查询字符串中提交空字段

    我正在开发一个搜索表单 搜索表单有 2 个部分 首先使用一些选择 输入和提交按钮进行简单搜索 第二个包含许多选择 复选框 单选 输入和提交按钮 我正在使用 GET 方法 因为我想要查询字符串中的所有字段 example com cars p
  • 创建一个新分支

    我想创建新分支 B 目前 我有一个主分支 本地和远程 和功能分支 A 本地 功能分支 A 已在远程删除 另外 我的本地功能分支中有一些已提交的文件和未暂存的文件 我想去master在不丢失任何更改并创建另一个分支的情况下 先提交该分支 然后
  • 在 matplotlib 轮廓图中同时使用 set_under 和 set_bad

    我正在尝试生成一个 matplotlib 轮廓图 其中指定值下的所有值都为白色 包括零 并且所有 nan 值 代表缺失数据 为黑色 我似乎无法让 nan 值的颜色与低于 零值不同 问题的一个简化示例是 import numpy as np
  • 打印到同一行时遇到问题

    我正在尝试编写一个代码 您在控制台中输入一个整数 然后您输入的整数显示得更大 由字母组成 如 ascii art 所以假设输入是112 那么输出将是 我的代码将具有相同的输出 只是不在同一行 它将在另一个数字下打印一个数字 从我的代码中您可
  • seaborn barplot:随 x 和色调改变颜色

    我的数据集包含有关决策支持模型的短期和长期影响的信息 我想将其绘制在条形图中 有 4 个条形 模型 短期 模型 长期 模型关闭 短期 模型 长期 这是一些示例代码 df pd DataFrame columns model time val
  • 临时容器对象上的迭代器

    假设我有一个按值返回 STL 容器的函数 例如 std list std list
  • 将小部件嵌入到 QWindow 中

    基本上我想使用创建一个窗口QtGui QWindow 代替QtWidgets QMainWindow 我想这样做是因为我想访问QWindow功能例如 startSystemMove setTitle setWindowStates star
  • WebSocket 中是否有像lastEventId 这样的数据块ID?

    我使用 WebSockets 在浏览器 客户端 中的按钮按下事件上从服务器发送图像 WebSocket API 的 onmessage 方法接收到的图像数据是 Blob 结构 分为多个块 问题在于短时间内多次按下按钮事件 收到的块是出故障
  • 如何加快AMI(Amazon Machine Image)的创建速度?

    AMI 创建需要long time 有没有办法让它发生得更快 例如 也许通过更改一些 AMI 创建设置 可能涉及 IOPS 卷类型 设备等 我不知道如何更改这些设置或者它是否有帮助 因此 我不确定现阶段有什么方法可以加快 AMI 创建过程
  • 通过 HTTP 表单上传文件,通过 MultipartEntityBuilder,带有进度条

    The 简洁版本 org apache MultipartEntity已弃用 其升级 MultipartEntityBuilder 在我们的在线论坛中似乎代表性不足 让我们解决这个问题 如何注册回调 以便我的 Android 应用程序可以在
  • 如何在Python中获取JavaScript内容

    我有一个网站 其中有我想要获取的存储在 JavaScript 中的数据 我如何获取它 代码是这样的 http pastebin com zhdWT5HM 我想从 varplayersData 行获取 我想获取这个东西 playerId sh
  • 为什么单节点集群只有一小部分可用的 cpu 配额?

    pod 将不会启动 因为 没有可用的节点与以下所有谓词匹配 cpu 不足 在上面的问题中 我在开始使用 3 个容器进行部署时遇到了问题 经过进一步调查 似乎只有 27 的 CPU 配额可用 这看起来非常低 其余的 CPU 似乎分配给了一些默
  • 如何为 Jtable 中的行添加边框?

    我有一个 Jtable 我想通过向行添加边框来突出显示该行 我已经延长了DefaultTableCellRenderer我认为这项工作需要在getTableCellRendererComponent method 我猜测 由于似乎没有行的概
  • 如何手动向ggplot添加图例? - R [重复]

    这个问题在这里已经有答案了 我有以下情节 我用来生成该图的代码是 ggplot df aes x instance y total hits geom point size 1 geom line geom line aes x df in
  • 获取有序矩阵

    我想对矩阵的值进行排序并将其从最大值转换为最小值 如这个简单且可复制的示例所示 From d lt c 2 34 25 0 13 0 25 2 1 m lt matrix d 3 3 m 1 2 3 1 2 0 25 2 34 13 2 3
  • Android 两点之间的距离

    我有 3 种计算距离的方法 这 3 种方法都给了我不同的答案 double lat 6 924049 double lng 79 853807 double lat1 6 856461 double lng1 79 912748 如何计算两
  • 如何检查对象是一个集合? [复制]

    这个问题在这里已经有答案了 我在用着Set来处理我的任务 但是当我调试时 我得到了 mySet has不是一个函数 所以我的问题是如何检查它是否是Set 就像对于Array has Array isArray obj 您可以使用实例化 le
  • 使用 Roslyn 查找特定方法的所有方法调用

    我正在使用 Roslyn 开发代码分析器 我当前的任务是查找程序集中未使用的所有内部方法 我从一个MethodDeclarationSyntax并从中得到符号 然后我使用FindCallersAsync中的方法SymbolFinder 但即
  • 在ggplot2中制作带有离散x轴的线图

    我正在构建一个带有小平面网格的 ggplot2 图形 Y 轴是百分比 X 轴是浓度 以数字表示 每个方面有 3 组 0 24 和 48 小时 ggplot data MasterTable aes x Concentration y Per
  • Pandas - 计算所有列的 z 分数

    我有一个包含单列 ID 的数据框 所有其他列都是我想要计算 z 分数的数值 这是其中的一个小节 ID Age BMI Risk Factor PT 6 48 19 3 4 PT 8 43 20 9 NaN PT 2 39 18 1 3 PT