0

2 つの系列がs1ありs2、それらに算術演算を適用できる場合:s1 + s2またはs1*s2. 算術演算はペア単位で適用され (2 つの系列の長さが同じであると仮定)、その結果、新しい系列が得られます。この機能により、多くのことがより簡単になります。

ここで、独自の演算子を定義し、それを 2 つのシリーズに適用してみます。

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

そして、それを 2 つのシリーズに適用しようとしました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 に答える