0

如果我们有两个系列s1s2我们可以对它们应用算术运算:s1 + s2s1*s2. 算术运算将成对应用(假设两个系列具有相同的长度),结果我们得到一个新系列。此功能使很多事情变得更加容易。

现在,我尝试定义自己的运算符并将其应用于两个系列:

def f(x1, x2):
   if x2 > 0:
      return x1/x2
   else:
      return 1000.0

我尝试将其应用于两个系列:f(s1,s2). 这没用。在某种程度上,这是可以预料的,因为用户定义的函数不知道如何处理序列。所以,我的问题是,是否有一种优雅的方式来做我想做的事?

4

1 回答 1

2
In [12]: s1 = pd.Series(np.random.randint(-10, 10, 5))

In [13]: s2 = pd.Series(np.random.randint(-10, 10, 5))

In [14]: s1.combine(s2, f)
Out[14]:
0    1000
1    1000
2      -2
3    1000
4    1000
Dtype: int64
于 2013-02-27T15:47:08.143 回答