Pandas.DataFrame.abs() 绝对值 详解 含代码 含测试数据集 随Pandas版本持续更新

发布时间:2024年01月22日

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

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

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

Pandas API参考所有内容目录

Pandas.DataFrame.abs()

Pandas.DataFrame.abs 方法用于返回一个具有每个元素的绝对数值。

  • 数值类型中,如果存在缺失值(NaN),结果依然返回 NAN 例1
  • 此方法仅对数据类型全是 数值 类型的 SeriesDataFrame 有效。否则将报错 TypeError例2

语法:

DataFrame.abs()

返回值:

  • abs

    返回包含每个元素的绝对值的 SeriesDataFrame

计算公式

  • 常规数值:
    • ∣ x ∣ |x| x
  • 复数(complex):
    • 复数的表现形式: z = a + b i z=a+bi z=a+bi
    • 复数的绝对值计算公式: ∣ z ∣ = a 2 + b 2 |z| = \sqrt{a^2 + b^2} z=a2+b2 ?
  • 布尔值:
    • 布尔值没有绝对值,如果被使用将报错 TypeError

示例:

测试文件下载:

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

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

测试文件下载位置.png

测试文件下载位置

例1:求"Age"列所有数值的绝对值,如果有缺失值,则对应位置返回NaN。

例1-1、构建演示数据,并观察数据内容
import pandas as pd
import numpy as np

df = pd.DataFrame({"Person":["John", "Myla", "Lewis", "John", "Myla"],
                   "Age": [24., np.nan, 21., 33, 26],
                   "Single": [False, True, True, True, False]})

df
PersonAgeSingle
0John24.0False
1MylaNaNTrue
2Lewis21.0True
3John33.0True
4Myla26.0False
例1-2、求"Age"列所有数值的绝对值,如果有缺失值,则对应位置返回NaN
df['Age'].abs()
0    24.0
1     NaN
2    21.0
3    33.0
4    26.0
Name: Age, dtype: float64

例2:如果传入 DataFrame.abs 的数据不全是数值类型,会报错 TypeError

df.abs()
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)  

File D:\miniconda3\envs\python3.12\Lib\site-packages\pandas\core\internals\blocks.py:366, in Block.apply(self, func, **kwargs)
    360 @final
    361 def apply(self, func, **kwargs) -> list[Block]:
    362     """
    363     apply the function to my values; return a block if we are not
    364     one
    365     """
--> 366     result = func(self.values, **kwargs)
    368     result = maybe_coerce_values(result)
    369     return self._split_op_result(result)


TypeError: bad operand type for abs(): 'str'
文章来源:https://blog.csdn.net/mingqinsky/article/details/135722003
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。