diff --git a/pandas/core/generic.py b/pandas/core/generic.py index a893b2ba1a189..b9d97eec9a99c 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -7115,12 +7115,70 @@ def _tz_localize(ax, tz, ambiguous): # Numeric Methods def abs(self): """ - Return an object with absolute value taken--only applicable to objects - that are all numeric. + Return a Series/DataFrame with absolute numeric value of each element. + + This function only applies to elements that are all numeric. Returns ------- - abs: type of caller + abs + Series/DataFrame containing the absolute value of each element. + + Notes + ----- + For ``complex`` inputs, ``1.2 + 1j``, the absolute value is + :math:`\\sqrt{ a^2 + b^2 }`. + + Examples + -------- + Absolute numeric values in a 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 + + Absolute numeric values in a Series with complex numbers. + + >>> s = pd.Series([1.2 + 1j]) + >>> s.abs() + 0 1.56205 + dtype: float64 + + Absolute numeric values in a Series with a Timedelta element. + + >>> s = pd.Series([pd.Timedelta('1 days')]) + >>> s.abs() + 0 1 days + dtype: timedelta64[ns] + + Select rows with data closest to certian value using argsort (from + `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 + + See Also + -------- + numpy.absolute : calculate the absolute value element-wise. """ return np.abs(self)