You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas基于指定范围条件替换多列异常值?

解决Pandas多列异常值替换问题

嘿,作为Pandas新手,你这个需求其实挺常见的,而且实现起来很简单!我给你两种实用的方法,直接就能搞定多列的异常值替换。

首先,先把你提供的样本数据集转换成Pandas的DataFrame,方便后续操作:

import pandas as pd

# 创建样本数据集
data = {
    'day': [1,2,3,4,5,6,7,8,9,10],
    'phone_calls': [11,12,10,13,170,9,67,180,8,10],
    'received': [11,12,0,12,2,9,1,150,1,10]
}
df = pd.DataFrame(data)

方法一:用clip()函数(最简洁高效)

Pandas的clip()方法专门用来把数值限制在指定的上下范围内,正好匹配你的需求:小于8的替换为8,大于50的替换为50。你只需要指定lower=8和upper=50,然后针对需要处理的列(这里是phone_calls和received)应用即可:

# 对指定列进行异常值替换
processed_df = df.copy()
processed_df[['phone_calls', 'received']] = processed_df[['phone_calls', 'received']].clip(lower=8, upper=50)

print(processed_df)

运行后你会得到处理后的结果:

day  phone_calls  received
0    1           11        11
1    2           12        12
2    3           10         8
3    4           13        12
4    5           50         8
5    6            9         9
6    7           50         8
7    8           50        50
8    9            8         8
9   10           10        10

这个方法的好处是代码简洁、执行效率高,适合处理大规模数据。

方法二:手动逻辑判断(适合新手理解原理)

如果你想更清楚地看到每一步的判断逻辑,可以用applymap()结合自定义函数,或者用np.where()来实现:

用applymap()的方式:

import numpy as np

def replace_outliers(x):
    if x < 8:
        return 8
    elif x > 50:
        return 50
    else:
        return x

processed_df = df.copy()
processed_df[['phone_calls', 'received']] = processed_df[['phone_calls', 'received']].applymap(replace_outliers)

用np.where()的方式:

processed_df = df.copy()
# 处理phone_calls列
processed_df['phone_calls'] = np.where(processed_df['phone_calls'] < 8, 8, 
                                       np.where(processed_df['phone_calls'] > 50, 50, processed_df['phone_calls']))
# 处理received列
processed_df['received'] = np.where(processed_df['received'] < 8, 8, 
                                    np.where(processed_df['received'] > 50, 50, processed_df['received']))

这两种方法都能得到和clip()一样的结果,适合你理解异常值替换的底层逻辑。

不管用哪种方法,最终都能一次性完成多列的异常值替换,完全符合你的需求哦!

内容的提问来源于stack exchange,提问作者Sidhartha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:28:39