DataFrame.abs()
返回一个包含每个元素绝对值的Series
/DataFrame
。
此函数只适用于所有数值元素。
返回: | abs 包含每个元素绝对值的 |
例子,
1)基本使用
import pandas as pd # 创建一个包含负数的 DataFrame df = pd.DataFrame({ 'A': [-1, -2, -3], 'B': [4, -5, 6], 'C': [-7, 8, -9] }) print("原始 DataFrame:") print(df) # 计算 DataFrame 的绝对值 df_abs = df.abs() print("\n绝对值 DataFrame:") print(df_abs)
2)处理包含 NaN 的 DataFrame
import pandas as pd import numpy as np # 创建一个包含 NaN 的 DataFrame df = pd.DataFrame({ 'A': [-1, np.nan, -3], 'B': [4, -5, np.nan], 'C': [-7, 8, -9] }) print("原始 DataFrame:") print(df) # 计算 DataFrame 的绝对值 df_abs = df.abs() print("\n绝对值 DataFrame:") print(df_abs)
3)处理带有多种数据类型的 DataFrame
import pandas as pd # 创建一个包含多种数据类型的 DataFrame df = pd.DataFrame({ 'A': [-1, -2, -3], 'B': [4, -5, 6], 'C': ['a', 'b', 'c'] }) print("原始 DataFrame:") print(df) # 计算 DataFrame 的绝对值 df_abs = df[['A', 'B']].abs() # 仅对数值列进行操作 print("\n绝对值 DataFrame (仅数值列):") print(df_abs)
4)使用示例
import pandas as pd import numpy as np # 1. Series 中的绝对数值 s = pd.Series([-1.10, 2, -3.33, 4]) s_abs = s.abs() print("原始 Series:") print(s) print("\nSeries 的绝对值:") print(s_abs) # 2. 复数 Series 中的绝对数值 s_complex = pd.Series([1.2 + 1j]) s_complex_abs = s_complex.abs() print("\n原始复数 Series:") print(s_complex) print("\n复数 Series 的绝对值:") print(s_complex_abs) # 3. 具有时间增量元素的 Series 中的绝对数值 s_timedelta = pd.Series([pd.Timedelta('1 days')]) s_timedelta_abs = s_timedelta.abs() print("\n原始时间增量 Series:") print(s_timedelta) print("\n时间增量 Series 的绝对值:") print(s_timedelta_abs) # 4. 使用 argsort 选择数据最接近某个值的行 df = pd.DataFrame({ 'a': [4, 5, 6, 7], 'b': [10, 20, 30, 40], 'c': [100, 50, -30, -50] }) print("\n原始 DataFrame:") print(df) # 使用 argsort 选择 'c' 列中最接近 43 的行 df_sorted = df.loc[(df.c - 43).abs().argsort()] print("\n根据 'c' 列中最接近 43 的行排序后的 DataFrame:") print(df_sorted)