我有以下内容:
a = pd.Series([4, 8, 3, 6, 2])
b = pd.Series([2, 6, 6, 3, 4])
我能做到:
c = a.sub(b)
print c
0 2
1 2
2 -3
3 3
4 -2
我真正想要的是获取最小值并生成以下系列:
0 2
1 2
2 0
3 3
4 0
我可以使用pandas Series math进行以下操作,而不必明确地迭代每个值,如:
result = []
for val in c.tolist():
result.append(val if val > 0 else 0)
pd.Series(result)
答案 0 :(得分:4)
您可以使用clip
:
In [35]: a.sub(b).clip(lower=0)
Out[35]:
0 2
1 2
2 0
3 3
4 0
dtype: int64