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