当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame clip方法用法及代码示例


Pandas DataFrame.clip(~) 方法用于确保 DataFrame 的值在特定范围内。

参数

1.lower | scalararray_like | optional

要剪辑的下限。小于 lower 的值将被 lower 替换。您可以通过传入 None 来忽略下限。

2. upper | scalararray_like | optional

要剪辑的上限。大于 upper 的值将被 upper 替换。您可以通过传入 None 来忽略上限。

3. axis | intstring | optional

是否对每行或每列进行裁剪:

说明

None

剪辑整个 DataFrame 。

0"index"

对每列按元素进行剪辑。

1"columns"

对每行按元素进行剪辑。

默认情况下,axis=None 。当您传入 lowerupper 的数组时,应根据需要将 axis 设置为 01。请参阅下面的示例以进行说明。

4. inplace | boolean | optional

是否直接修改源DataFrame而不创建新的。默认情况下, inplace=False ,即,将返回一个新的 DataFrame ,并且源 DataFrame 将保持不变。

返回值

其值被剪裁的 DataFrame

例子

基本用法

考虑以下 DataFrame :

df = pd.DataFrame({"A":[2,4],"B":[6,8]})
df



   A  B
0  2  6
1  4  8

下限和上限分别设置为 36 的裁剪:

df.clip(lower=3, upper=6)



   A  B
0  3  6
1  4  6

在此,请注意以下事项:

  • DataFrame 中小于 3 的任何值都将被值 3 替换。

  • 任何大于 6 的值都将被值 6 替换。

  • 最后, DataFrame 中的最小值应为 3 ,最大值应为 6

传入一个数组

剪裁每一列

考虑与上面相同的DataFrame:

df



   A  B
0  2  6
1  4  8

我们可以传入一个边界数组,如下所示:

df.clip(lower=[5,2], axis=0)



   A  B
0  5  6
1  4  8

在这里,从 axis=0 开始,我们逐个元素地剪切每一列。分解正在发生的事情:

Column A: [5 2] lower clips [2 4] = [5 4]
Column B: [5 2] lower clips [6 8] = [6 8]

我们还可以设置数组和数字的组合,如下所示:

df.clip(lower=[5,2], upper=6, axis=0)



   A  B
0  5  6
1  4  6

分解正在发生的事情:

Column A: [5 2] lower clips [2 4] = [5 4]   -> upper clipped to [5 4]
Column B: [5 2] lower clips [6 8] = [6 8]   -> upper clipped to [6 6]
剪裁每一行

这里再次df供您参考:

df



   A  B
0  2  6
1  4  8

设置 axis=1 按元素剪辑每行:

df.clip(lower=[5,2], upper=6, axis=1)



   A  B
0  5  6
1  5  6

再次,这是细分:

Column One: [5 2] lower clips [2 6] = [5 6]   -> upper clipped to [5 6]
Column Two: [5 2] lower clips [4 8] = [5 8]   -> upper clipped to [5 6]

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | clip method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。