Pandas.DataFrame.std() 样本标准差/总体标准差 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.1.2 编写。

关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。

Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。

Pandas API参考所有内容目录

本节目录

  • Pandas.DataFrame.std()
    • 计算公式:
    • 语法:
    • 返回值:
    • 参数说明:
      • axis 指定计算方向(行或列)
      • skipna 忽略缺失值
      • numeric_only 排除非纯数值的行或列
      • ddof 自由度修正
    • 相关方法:
    • 示例:
      • 例1:如果是 `Series` 始终保持 `axis=0`,即计算整列的标准差。
      • 例2、求 `DataFrame` 每列的样本标准差
      • 例3、求 `DataFrame` 每行的样本标准差
      • 例4:如果整行或整列,都是缺失值,那么标准差计算结果也是缺失值。
      • 例5:`numeric_only=True` 只对数值类型的列求样本标准差。
      • 例6:控制自由度修正值,当 `ddof=0` 将计算 **总体标准差**。

Pandas.DataFrame.std()

Pandas.DataFrame.std 方法用于返回行或列的标准差,通过控制自由度参数 ddof 可以实现返回 样本标准差总体标准差

  • 传送门:标准差的概念

  • ⚠️ 关于取样方法的说明(不纠结计算过程的同学请跳过):

    Pandas.DataFrame.std 方法的默认 ddof=1,对当前数据计算 样本标准差

    • 并不是在你当前数据中取样后,再进行标准差计算。
    • 样本 指的是,当前准备计算标准差的数据,是你全部的数据中取出的部分样本。
    • 例如:你有一个数组[1, 2, 3, 4] ,使用Pandas.DataFrame.std 计算标准差。无论是 ddof=1ddof=0 ,参与计算的数值总量nN,都是4个。
    • 综上所述,强迫症同学不必纠结于样本标准差取样方法 ,因为根本就没取样。

计算公式:

  • 样本标准差公式 Pandas.DataFrame.std 默认的标准差计算方法是根号内以 n-1 为底,即样本标准差:

    s = ∑ i = 1 n ( x i − x ˉ ) 2 n − 1 s = \sqrt{\frac{\sum_{i=1}^{n}(x_i - \bar{x})^2}{n-1}} s=n1i=1n(xixˉ)2

    s s s 表示样本标准差, n n n 表示样本大小, x i x_i xi 表示每个观测值, x ˉ \bar{x} xˉ 表示样本均值。

  • 总体标准差公式

    σ = ∑ i = 1 N ( x i − μ ) 2 N \sigma = \sqrt{\frac{\sum_{i=1}^{N}(x_i - \mu)^2}{N}} σ=Ni=1N(xiμ)2

    σ \sigma σ 表示总体标准差, μ \mu μ 表示总体均值, N N N 表示总体大小。

语法:

DataFrame.std(axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)

返回值:

  • Series or DataFrame (if level specified)

    • 返回 SeriesDataFrame ,依传输的数据结构而定。

参数说明:

axis 指定计算方向(行或列)

  • axis : {0 or ‘index’, 1 or ‘columns’}, default 0

    axis 参数,用于指定计算方向,即按行计算或按列计算标准差:

    • 如果是 Series 此参数无效,将始终保持 axis=0,即计算整列的标准差。例1
    • 如果是 DataFrame 默认为 axis=0 即计算每一列的标准差。并有以下参值可选:
      • 0 or ‘index’: 计算每列的标准差。 例2
      • 1 or ‘columns’: 计算每行的标准差。例3

skipna 忽略缺失值

  • skipna : bool, default False >

    skipna 参数,用于指定求标准差的时候是否忽略缺失值:

    • False: 不忽略,缺失值 在求标准差的时候,会被解析为浮点数 float 0.0
    • True: 忽略缺失值。

    ⚠️ 注意 :

    如果整行或整列,都是缺失值,那么标准差结果是依然是NaN。 例4

numeric_only 排除非纯数值的行或列

  • numeric_only : bool, default False

    numeric_only 参数,用于控制是否 排除非纯数值的行或列:

    • False: 不排除。
    • True: 只对纯数值型的行或列计算标准差。例5

ddof 自由度修正

  • ddof : int, default 1 例6

    ddof : Delta 自由度,用于计算的除数是 N-ddof ,其中 N 代表元素的数量。默认值为 1。

    • ddof=1 计算 样本标准差(默认)
    • ddof=0 计算 总体标准差
      • ddof=0 DataFrame.std 的行为和 numpy.std 一致。
  • ⚠️ddof 应该如何取值?:

    • 如果你准备计算标准差的数据,是某个总体数据集的一部分样本,你想通过这一部分样本对总体数据集的标准差进行无偏估计,则可以选择使 ddof=1 或保持默认。进行 样本标准差 的计算。
    • 如果你准备计算标准差的数据,就是你的总体数据集的全部,你可以选择使ddof=0 。进行 总体标准差 的计算。

相关方法:

➡️ 相关方法


  • Series.std

    标准差(样本标准差/总体标准差)

示例:

测试文件下载:

本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。

若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。

测试文件下载位置.png

测试文件下载位置

例1:如果是 Series 始终保持 axis=0,即计算整列的标准差。

import numpy as np
import pandas as pds = pd.Series([24.0, np.nan, 21.0, 33, 26], name="age")
s.std()
5.0990195135927845

例2、求 DataFrame 每列的样本标准差

import numpy as np
import pandas as pddf = pd.DataFrame({'person_id': [0, 1, 2, 3],'age': [21, 25, 62, 43],'height': [1.61, 1.87, 1.49, 2.01]}).set_index('person_id')# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.std()
age       18.786076
height     0.237417
dtype: float64

例3、求 DataFrame 每行的样本标准差

import numpy as np
import pandas as pddf = pd.DataFrame({'person_id': [0, 1, 2, 3],'age': [21, 25, 62, 43],'height': [1.61, 1.87, 1.49, 2.01]}).set_index('person_id')# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.std(axis=1)
person_id
0    13.710800
1    16.355380
2    42.787031
3    28.984307
dtype: float64

例4:如果整行或整列,都是缺失值,那么标准差计算结果也是缺失值。

import numpy as np
import pandas as pddf = pd.DataFrame({"A": [np.nan, np.nan]},
)# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.std()
A   NaN
dtype: float64

例5:numeric_only=True 只对数值类型的列求样本标准差。

df = pd.DataFrame({"A": [0.5], "B": ["a"], "C": [True]})# 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式
df.std(axis=1,numeric_only=True)# ... 0    0.353553
# ... dtype: object

B列由于是数字+字符串,所以没有被计算最小值。 C列布尔值和浮点数混用,也没有被计算最小值

例6:控制自由度修正值,当 ddof=0 将计算 总体标准差

观察计算每列样本标准差的结果

df = pd.DataFrame({'person_id': [0, 1, 2, 3],'age': [21, 25, 62, 43],'height': [1.61, 1.87, 1.49, 2.01]}).set_index('person_id')
df.std()
age       18.786076
height     0.237417
dtype: float64

观察计算每列总体标准差的结果

df.std(ddof=0)
age       16.269219
height     0.205609
dtype: float64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/421780.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精密、CMOS、轨到轨输入/输出、宽带运算放大器

MS8601/MS8602/MS8604 分别是单 / 双 / 四通道、轨到轨输入和输出、 单电源放大器,具有极低的失调电压和宽信号带宽。它采用 1.8V 至 5V 单电 源( 0.9 V 至 2.5 V 双电源)供电。 MS8601/MS8602/MS8604 低失调、极低的输入偏置电流和高速…

零售电商经营分析体系建设咨询案例

一、项目背景 在当前经济形式下,外贸出口面临着巨大压力,跨境电商行业在经营上需要更加精细化。为了应对这一挑战,某跨境电商决定进行零售电商经营分析体系的建设,以提升企业的运营效率和决策准确性。 二、项目目标 建立一套完…

Pandas.Series.mean() 平均值 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.1.2 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。 Pandas API参…

2023 年值得一读的技术文章 | NebulaGraph 技术社区

在之前的产品篇,我们了解到了 NebulaGraph 内核及周边工具在 2023 年经历了什么样的变化。伴随着这些特性的变更和上线,在【文章】博客分类中,一篇篇的博文记录下了这些功能背后的设计思考和研发实践。当中,既有对内存管理 Memory…

idea远程服务调试

1. 配置idea远程服务调试 这里以 idea 新 ui 为例,首先点击上面的 debug 旁边的三个小圆点,然后在弹出的框框中选择 “Edit”,如下图所示。 然后进入到打开的界面后,点击左上角的 “” 进行添加,找到 “Remote JVM De…

Spring Authorization Server入门 (二十) 实现二维码扫码登录

实现原理 打开网页,发起授权申请/未登录被重定向到登录页面选择二维码登录,页面从后端请求二维码页面渲染二维码图片,并轮询请求,获取二维码的状态事先登录过APP的手机扫描二维码,然后APP请求服务器端的API接口&#…

[pytorch入门] 5. DataLoader的使用

简介 dataset:数据集,提供数据 dataloader:数据加载器,对数据进行加载,可以讲数据加载到神经网络当中 从dataset中取数据时,通过在dataloader中设置参数来确定取数据的方式 用法 要from torch.utils.dat…

基于CanvasLabel的Leaflet矢量数据免切片属性标注实践

目录 前言 一、Leaflet.CanvasLabel 1、开源地址 2、设置参数说明 二、组件集成 1、新建html文件 2、声明样式 3、定义矢量文本渲染器 4、定义地图 5、添加矢量数据 6、最终效果 总结 前言 在一般的业务场景中,针对小量的矢量数据,比如POI兴…

java现在就业环境怎么样?

java现在就业环境怎么样? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#…

运用多媒体辅助教学的好处

在教育信息化的大背景下,运用多媒体辅助教学已经成为了当今课堂的标配。但很多老师或许只是盲目地追求形式,而未能深入体会到其真正的价值。那么,运用多媒体辅助教学究竟有哪些好处呢? 多媒体辅助教学能够提起学生的学习兴趣。传统…

机械设计-哈工大课程学习-螺纹连接

圆柱螺纹主要几何参数螺纹参数 ①外径(大径),与外螺纹牙顶或内螺纹牙底相重合的假想圆柱体直径。螺纹的公称直径即大径。 ②内径(小径),与外螺纹牙底或内螺纹牙顶相重合的假想圆柱体直径。 ③中径&#xff…

Ubuntu重设root的密码

重设root的密码 未重设密码之前,Ubuntu 中默认的 root 密码是随机的,即每次开机都会有一个新的root 密码,所以此时的 root 用户密码并不确定; 重设root 密码,使用安装时创建的用户登录后sudo su切换至root用户&#…