使用熊猫替换基于不同条件的多列中的异常值?

悉达多

我想一次在多列中找到异常值,并根据两个条件用其他值替换异常值。样本数据集:

day phone_calls received
1   11  11
2   12  12
3   10  0
4   13  12
5   170 2
6   9   9
7   67  1
8   180 150
9   8   1
10  10  10

找出离群值范围,假设范围是(8-50),然后替换值:如果列值小于8则替换为8,如果大于50则替换为50。请帮助我是新手给熊猫。

耶斯列

我认为需要set_indexclip

df = df.set_index('day').clip(8,50)
print (df)
     phone_calls  received
day                       
1             11        11
2             12        12
3             10         8
4             13        12
5             50         8
6              9         9
7             50         8
8             50        50
9              8         8
10            10        10

或者与ilocselect all columns类似,而不是 first:

df.iloc[:, 1:] = df.iloc[:, 1:].clip(8,50)
print (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

编辑:您可以指定列list

cols = ['phone_calls','received']
df[cols] = df[cols].clip(8,50)
print (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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章