Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.abs()方法的使用。

DataFrame.abs()

返回一个包含每个元素绝对值的Series/DataFrame

此函数只适用于所有数值元素。

返回:

abs

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

例子

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

具有时间增量元素的Series中的绝对数值

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

使用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