本文主要是介绍Pandas.DataFrame.abs() 绝对值 详解 含代码 含测试数据集 随Pandas版本持续更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于Pandas版本: 本文基于 pandas2.2.0 编写。
关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。
传送门: Pandas API参考目录
传送门: Pandas 版本更新及新特性
传送门: Pandas 由浅入深系列教程
本节目录
- Pandas.DataFrame.abs()
- 语法:
- 返回值:
- 计算公式
- 相关方法:
- 示例:
- 例1:求"Age"列所有数值的绝对值,如果有缺失值,则对应位置返回NaN。
- 例1-1、构建演示数据,并观察数据内容
- 例1-2、求"Age"列所有数值的绝对值,如果有缺失值,则对应位置返回NaN
- 例2:如果传入 `DataFrame.abs` 的数据不全是数值类型,会报错 `TypeError`
- 例3:复数绝对值的计算
Pandas.DataFrame.abs()
Pandas.DataFrame.abs
方法用于返回每个元素的绝对数值。
- 求绝对值的
DataFrame
允许出现缺失值(NaN
)。但缺失值(NaN
)的绝对值依然是 `NAN 例1 - 求绝对值的
DataFrame
所有元素必须都必须全都是数值类型(整数int
,浮点数float
,布尔值bool
)。否则将报错TypeError
。例2
语法:
DataFrame.abs()
返回值:
-
abs
返回包含每个元素的绝对值的
Series
或DataFrame
。
计算公式
- 常规数值:
- ∣ x ∣ |x| ∣x∣
- 复数(
complex
): 例3- 复数的表现形式: 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
。
- 布尔值没有绝对值,如果被使用将报错
相关方法:
➡️ 相关方法
Series.abs
绝对值
示例:
测试文件下载:
本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。
若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。
例1:求"Age"列所有数值的绝对值,如果有缺失值,则对应位置返回NaN。
例1-1、构建演示数据,并观察数据内容
import pandas as pd
import numpy as npdf = pd.DataFrame({"Person":["John", "Myla", "Lewis", "John", "Myla"],"Age": [-24., np.nan, -21., 33, 26],"Single": [False, True, True, True, False]})df
Person | Age | Single | |
---|---|---|---|
0 | John | -24.0 | False |
1 | Myla | NaN | True |
2 | Lewis | -21.0 | True |
3 | John | 33.0 | True |
4 | Myla | 26.0 | False |
例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 @final361 def apply(self, func, **kwargs) -> list[Block]:362 """363 apply the function to my values; return a block if we are not364 one365 """
--> 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'
例3:复数绝对值的计算
import pandas as pds = pd.Series([1.2 + 1j, 2.3+0.5j])s.abs()
运行结果:
0 1.56205
1 2.35372
dtype: float64
这篇关于Pandas.DataFrame.abs() 绝对值 详解 含代码 含测试数据集 随Pandas版本持续更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!