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 分数 的相关文章

  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

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

    我正在开发一个搜索表单 搜索表单有 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