pandas.Series.clip#

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

在输入阈值处截断值。

将边界之外的值分配给边界值。阈值可以是单个值或类数组,在后一种情况下,剪切会沿指定的轴逐元素执行。

Parameters:
lowerfloat 或类数组,默认 None

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

upperfloat 或类数组,默认 None

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

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

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

inplacebool,默认 False

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

*args, **kwargs

其他关键字没有影响,但可能为了与 numpy 兼容而接受。

Returns:
Series 或 DataFrame 或 None

与调用对象相同的类型,其中边界外的 valori 已替换,或者如果 inplace=True 则为 None。

参见

Series.clip

在 series 中将值修剪到输入阈值。

DataFrame.clip

在 dataframe 中将值修剪到输入阈值。

numpy.clip

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

Examples

>>> 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      2
1     -3     -4
2      0      6
3      6      8
4      5      3