I am having trouble finding a way to do an efficient element-wise minimum of two Series objects in pandas. For example I can add two Series easily enough:
In
The most straightforward way I can see is to make them into a DataFrame and then take the row-wise min:
>>> print pandas.concat([s1, s2], axis=1).min(axis=1)
1 1
2 1
3 1
4 1
dtype: float64
This method will do the job:
import pandas as pd
def elementwise_min(x, y):
x[x > y] = y
return x
a = pd.Series([1, 2, 3])
b = pd.Series([0, 2, 4])
elementwise_min(a, b)