将pandas数据框中的列的值超出定义的间隔限制设置为给定值(例如NaN)

时间:2018-08-06 14:40:53

标签: python pandas dataframe limit

具有有效值的已定义间隔限制,所有熊猫数据帧列值都应设置为给定值,例如NaN。可以将定义限制和数据帧内容的值视为数字类型。

具有以下限制和数据帧:

min = 2
max = 7
df = pd.DataFrame({'a': [5, 1, 7, 22],'b': [12, 3 , 10, 9]})

    a   b
0   5  12
1   1   3
2   7  10
3  22   9

在列a上设置限制将导致:

     a   b
0    5  12
1  NaN   3
2    7  10
3  NaN   9

2 个答案:

答案 0 :(得分:6)

wherebetween一起使用

df.a=df.a.where(df.a.between(min,max),np.nan)
df
Out[146]: 
     a   b
0  5.0  12
1  NaN   3
2  7.0  10
3  NaN   9

clip

df.a.clip(min,max)
Out[147]: 
0    5.0
1    NaN
2    7.0
3    NaN
Name: a, dtype: float64

答案 1 :(得分:1)

您也可以将.locbetween一起使用

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': [5, 1, 7, 22],'b': [12, 3 , 10, 9]})

min = 2
max = 7

df.loc[~df.a.between(min,max), 'a'] = np.nan