pandas.DataFrame.clip#

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

在输入阈值处修剪值。

将边界外的值赋给边界值。阈值可以是单个值或类数组,后者的情况下,剪裁沿指定轴逐元素执行。

参数:
lowerfloat 或类数组,默认 None

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

upperfloat 或类数组,默认 None

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

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

沿给定轴将对象与 lower 和 upper 对齐。对于 Series,此参数未使用,默认值为 None

inplacebool, default False

是否在数据上就地执行操作。

**kwargs

附加关键字没有效果,但可能会为与 numpy 兼容而接受。

返回:
Series 或 DataFrame

与调用对象相同的类型,其中边界外的替换值已完成。

另请参阅

Series.clip

在 Series 中使用输入阈值修剪值。

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

使用 lower 和 upper 阈值按列剪裁

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

使用每列特定的 lower 和 upper 阈值进行剪裁

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

使用每列元素的特定 lower 和 upper 阈值进行剪裁

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

使用每列元素的特定 lower 阈值进行剪裁,包含缺失值

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