la manipulation des zéros dans les pandas DataFrames divisions de colonnes en Python

Quelle est la meilleure façon de gérer de zéro dénominateurs lors de la division des pandas DataFrame les colonnes de l'un par l'autre en Python? par exemple:

df = pandas.DataFrame({"a": [1, 2, 0, 1, 5], "b": [0, 10, 20, 30, 50]})
df.a / df.b  # yields error

J'aimerais les ratios d'où le dénominateur est égal à zéro pour être enregistrés en tant que NA (numpy.nan). Comment cela peut-il être fait de manière efficace dans les pandas?

Casting pour float64 ne fonctionne pas au niveau des colonnes:

In [29]: df
Out[29]: 
   a   b
0  1   0
1  2  10
2  0  20
3  1  30
4  5  50

In [30]: df["a"].astype("float64") / df["b"].astype("float64")
...

FloatingPointError: divide by zero encountered in divide

Comment puis-je faire, juste pour le particulier colonnes et non pas toute la df?

  • Si vous venez d'utiliser des flotteurs, vous aurez +/-inf
  • il ne fonctionne pas pour moi - voir modifier
InformationsquelleAutor | 2013-04-26