take minimum between column value and constant global value

user5421875 picture user5421875 · Nov 13, 2015 · Viewed 10.9k times · Source

I would like create new column for given dataframe where I calculate minimum between the column value and some global value (in this example 7). so my df has the columns session and note and my desired output column is minValue :

session     note     minValue
1       0.726841     0.726841
2       3.163402     3.163402  
3       2.844161     2.844161
4       NaN          NaN

I'm using the built in Python method min :

df['minValue']=min(7, df['note'])

and I have this error:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Answer

EdChum picture EdChum · Nov 13, 2015

Use np.minimum:

In [341]:
df['MinNote'] = np.minimum(1,df['note'])
df

Out[341]:
   session      note  minValue   MinNote
0        1  0.726841  0.726841  0.726841
1        2  3.163402  3.163402  1.000000
2        3  2.844161  2.844161  1.000000
3        4       NaN       NaN       NaN

Also min doesn't understand array-like comparisons hence your error