La création d'un élément-sage minimum de la Série à partir de deux autres Séries en Python Pandas
Je vais avoir du mal à trouver un moyen d'en faire un efficace de l'élément de sage minimum de deux Séries d'objets dans les pandas. Par exemple je peux ajouter deux Séries assez facilement:
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
Mais je ne peux pas trouver un moyen efficace de faire un élément-sage minimum entre deux Séries (le long de l'harmonisation des indices et de la manipulation des valeurs NaN).
Nevermind. Il y a une trappe d'évacuation avec les combiner la fonction de sorte que vous pouvez placer dans n'importe quel élément de sages-fonction:
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
- Je pense que vous devriez ajouter le bit après "nevermind", comme une réponse, plutôt qu'à la fin de la question (j'avais upvote)... Même si je suis en désaccord que
min(1, NaN) == 0
.... - Ouais! Vous devez répondre à votre propre question, il a accepté de répondre.
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple que je peux voir, c'est pour en faire un DataFrame, puis prendre la ligne sage min:
Une autre façon similaire:
min(axis = 1)
Je trouve cela le plus simple:
Lien vers les docs (numpy.minimum)
Même réponse que Andy Hayden, mais un peu plus facile à lire: