Python Pandasで2つのシリーズから要素ごとの最小シリーズを作成する質問

Python Pandasで2つのシリーズから要素ごとの最小シリーズを作成する質問

pandas で 2 つの Series オブジェクトを要素ごとに最小化する方法を見つけるのに苦労しています。たとえば、2 つの Series を簡単に追加できます。

In [1]:
import pandas as pd
s1 = pd.Series(data=[1,1,1], index=[1,2,3])
s2 = pd.Series(data=[1,2,2,1], index=[1,2,3,4])
s1.add(s2)    
Out[1]:
1     2
2     3
3     3
4   NaN
dtype: float64

しかし、2 つのシリーズ間の要素ごとの最小値を計算する効率的な方法 (インデックスの調整と NaN 値の処理を含む) が見つかりません。

気にしないでください。結合関数には逃げ道があるので、任意の要素単位の関数を挿入できます。

In [2]:
s1 = pd.Series(data=[1,1,1], index=[1,2,3])
s2 = pd.Series(data=[1,2,2,1], index=[1,2,3,4])
s1.combine(s2, min, 0)
Out[2]:
1    1
2    1
3    1
4    0
dtype: int64

ベストアンサー1

これが最も簡単だと思います:

import numpy as np

smax = np.minimum(s1, s2)

ドキュメントへのリンク (numpy.minimum)

おすすめ記事