pandas.DataFrame.abs#

DataFrame.abs()[源代码]#

返回一个 Series/DataFrame,其中包含每个元素的绝对数值。

此函数仅适用于所有元素均为数值的情况。

返回:
abs

包含每个元素绝对值的 Series/DataFrame。

另请参阅

numpy.absolute

逐元素计算绝对值。

注意

对于 complex 输入,例如 1.2 + 1j,绝对值为 \(\sqrt{ a^2 + b^2 }\)

示例

Series 中的绝对数值。

>>> s = pd.Series([-1.10, 2, -3.33, 4])
>>> s.abs()
0    1.10
1    2.00
2    3.33
3    4.00
dtype: float64

带有复数的 Series 中的绝对数值。

>>> s = pd.Series([1.2 + 1j])
>>> s.abs()
0    1.56205
dtype: float64

带有 Timedelta 元素的 Series 中的绝对数值。

>>> s = pd.Series([pd.Timedelta("1 days")])
>>> s.abs()
0   1 days
dtype: timedelta64[us]

使用 argsort 选择与特定值最接近的数据行(来自 StackOverflow)。

>>> df = pd.DataFrame(
...     {"a": [4, 5, 6, 7], "b": [10, 20, 30, 40], "c": [100, 50, -30, -50]}
... )
>>> df
     a    b    c
0    4   10  100
1    5   20   50
2    6   30  -30
3    7   40  -50
>>> df.loc[(df.c - 43).abs().argsort()]
     a    b    c
1    5   20   50
0    4   10  100
2    6   30  -30
3    7   40  -50