Python Pandas Series.clip_upper()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas Series.clip_upper()用于剪切超过传递的最大值的值。阈值作为参数被传递,系列中所有超过阈值的值都将与之相等。
语法: Series.clip_upper(threshold, axis=None, inplace=False)
参数:
threshold:数字或类似于列表,设置最大的阈值,如果是列表,为调用者系列中的每个值设置单独的阈值(鉴于列表大小相同)。
axis:0或’index’用于按行应用方法,1或’columns’用于按列应用。
inplace: 在调用者系列本身进行修改。(用新值覆盖)
返回类型: 带有更新值的系列
在下面的例子中,所使用的数据框包含一些NBA球员的数据。下面是数据框在任何操作之前的图像。
例子#1:应用于单一数值的系列中
在这个例子中,一个最大的阈值26被作为参数传递给.clip_upper()方法。这个方法在数据框的Age列上被调用,新的值被存储在Age_new列中。在做任何操作之前,使用.dropna()删除空行。
# importing pandas module
import pandas as pd
# making data frame
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")
# removing null values to avoid errors
data.dropna(inplace = True)
# setting threshold value
threshold = 26.0
# applying method and passing to new column
data["Age_new"]= data["Age"].clip_upper(threshold)
# displaying top 10 rows
data.head(10)
输出:
如输出图像所示,Age_new列的最大值为26。所有超过26的值都被剪掉,并使之等于26。
例子#2:在具有列表类型值的系列上应用
在这个例子中,使用.head()方法提取并存储年龄列的前10行。之后,创建一个相同长度的列表,并传递给.clip_upper()方法的阈值参数,为系列中的每个值设置单独的阈值。返回的值被存储在一个新的列’clipped_values’中。
# importing pandas module
import pandas as pd
# importing regex module
import re
# making data frame
data = pd.read_csv("https://media.geeksforgeeks.org /wp-content/uploads/nba.csv")
# removing null values to avoid errors
data.dropna(inplace = True)
# returning top rows
new_data = data.head(10).copy()
# list for separate threshold values
threshold =[27, 23, 19, 30, 26, 22, 22, 41, 11, 33]
# applying method and returning to new column
new_data["Clipped values"]= new_data["Age"].clip_upper(threshold = threshold)
# display
new_data
输出:
如输出图像所示,根据传递的列表,每个串联的值都有不同的阈值,因此,结果是根据每个元素的单独阈值返回的。所有超过各自阈值的值都被削减到了阈值。