Skip to content Skip to sidebar Skip to footer

Replace A Specific Range Of Values In A Pandas Dataframe

I have big data set and there are tons of values which are way over average. For example, A B 1 'H' 10 2 'E' 10000 3 'L' 12 4 'L' 8 5 'O'

Solution 1:

You are really close - instead of replace, use mask:

df['B'] = df['B'].mask(df['B'] > 15, 0)
print (df)
     A   B
1  'H'  10
2  'E'   0
3  'L'  12
4  'L'   8
5  'O'  11

Alternative:

df['B'] = np.where(df['B'] > 15, 0, df['B'])
print (df)
     A   B
1  'H'  10
2  'E'   0
3  'L'  12
4  'L'   8
5  'O'  11

If you want replace some range:

df['B'] = np.where(df['B'].between(8,11), 0, df['B'])
print (df)
     A      B
1  'H'      0
2  'E'  10000
3  'L'     12
4  'L'      0
5  'O'      0

Solution 2:

Another alternative:

df.loc[df['B'] > 15, 'B'] = 0
#   df#    B#0  10#1   0#2  12#3   8#4  11

Post a Comment for "Replace A Specific Range Of Values In A Pandas Dataframe"