关于Pandas版本: 本文基于 pandas2.1.2 编写。
关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。
Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。
Pandas.DataFrame.abs
方法用于返回一个具有每个元素的绝对数值。
DataFrame.abs()
abs
返回包含每个元素的绝对值的 Series
或 DataFrame
。
complex
):
TypeError
。测试文件下载:
本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。
若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。
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
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 |
df['Age'].abs()
0 24.0
1 NaN
2 21.0
3 33.0
4 26.0
Name: Age, dtype: float64
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'