pandas.DataFrame.clip#

DataFrame.clip(lower=None, upper=None, *, axis=None, inplace=False, **kwargs)[源代码]#

在输入阈值处修剪值。

将边界外的值赋值为边界值。阈值可以是单一值或类似数组,在后一种情况下,剪裁是按指定轴逐元素进行的。

参数:
lower浮点数或类似数组的对象,默认无

最小阈值。所有低于此阈值的值都将被设置为该阈值。缺少阈值(例如 NA)将不会裁剪该值。

upper浮点数或类似数组的对象,默认无

最大阈值。所有高于此阈值的值都将设置为该阈值。缺少阈值(例如 NA)将不会裁剪该值。

{{0 或 ‘index’, 1 或 ‘columns’, None}}, 默认 None

沿给定轴对齐对象与下限和上限。对于 Series,此参数未使用并默认为 None

inplace布尔值, 默认为 False

是否对数据执行就地操作。

**kwargs

额外的关键字没有效果,但可能被接受以兼容 numpy。

返回:
系列或数据帧或无

调用对象的相同类型,剪辑边界外的值被替换,如果 inplace=True 则为 None。

参见

Series.clip

在序列中输入阈值处修剪值。

DataFrame.clip

在 DataFrame 中输入阈值处修剪值。

numpy.clip

剪辑(限制)数组中的值。

例子

>>> data = {"col_0": [9, -3, 0, -1, 5], "col_1": [-2, -7, 6, 8, -5]}
>>> df = pd.DataFrame(data)
>>> df
   col_0  col_1
0      9     -2
1     -3     -7
2      0      6
3     -1      8
4      5     -5

使用下限和上限阈值的每列剪辑:

>>> df.clip(-4, 6)
   col_0  col_1
0      6     -2
1     -3     -4
2      0      6
3     -1      6
4      5     -4

每个列使用特定的下限和上限阈值的剪辑:

>>> df.clip([-2, -1], [4, 5])
    col_0  col_1
0      4     -1
1     -2     -1
2      0      5
3     -1      5
4      4     -1

每个列元素使用特定下限和上限阈值的剪辑:

>>> t = pd.Series([2, -4, -1, 6, 3])
>>> t
0    2
1   -4
2   -1
3    6
4    3
dtype: int64
>>> df.clip(t, t + 4, axis=0)
   col_0  col_1
0      6      2
1     -3     -4
2      0      3
3      6      8
4      5      3

使用特定较低阈值的列元素剪辑,带有缺失值:

>>> t = pd.Series([2, -4, np.nan, 6, 3])
>>> t
0    2.0
1   -4.0
2    NaN
3    6.0
4    3.0
dtype: float64
>>> df.clip(t, axis=0)
col_0  col_1
0      9.0    2.0
1     -3.0   -4.0
2      0.0    6.0
3      6.0    8.0
4      5.0    3.0