【发布时间】:2025-12-27 23:30:11
【问题描述】:
我正在尝试创建一个函数,该函数创建一个修改后的数据框,其中所有异常值都从我的变量 num_vars 中存储的列中删除。到目前为止,这是我的功能:
def remove_outliers(column):
Q1 = np.percentile(df[column], 25, interpolation = 'midpoint')
Q3 = np.percentile(df[column], 75, interpolation = 'midpoint')
IQR = Q3 - Q1
IQR_mult = IQR * 1.5
ceiling = Q3 + IQR_mult
floor = Q1 - IQR_mult
return df[(df[column] <= ceiling) & (df[column] >= floor)]
我想应用这个函数的列存储在
num_vars = ['host_response_rate', 'accommodates', 'bedrooms', 'beds', 'minimum_nights', 'availability_30', 'number_of_reviews', 'review_scores_rating', 'review_scores_cleanliness', 'review_scores_checkin', 'review_scores_communication', 'review_scores_location', 'review_scores_value', 'time_from_last_review', 'num_amenities', 'price']
该函数仅在调用“价格”等一列时有效,但在一次调用多个项目时不返回干净的数据框。 我怎样才能使函数可以一次获取所有这些列,并返回一个已删除所有异常值的数据框?
【问题讨论】:
-
在循环中迭代列列表怎么样?
标签: python pandas function numpy lambda