pandas: Dataframe.replace() avec la regex

J'ai une table qui ressemble à ceci:

df_raw = pd.DataFrame(dict(A = pd.Series(['1.00','-1']), B = pd.Series(['1.0','-45.00','-'])))

    A       B
0   1.00    1.0
1   -1      -45.00
2   NaN     -

Je voudrais remplacer '-' pour '0.00' l'aide de dataframe.replace (), mais il se bat parce que des valeurs négatives, '-1', '-45.00'.

Comment puis-je ignorer les valeurs négatives et les remplacer uniquement '-' pour '0.00' ?

mon code:

df_raw = df_raw.replace(['-','\*'], ['0.00','0.00'], regex=True).astype(np.float64)

code d'erreur:

ValueError: invalid literal for float(): 0.0045.00
  • Désolé de ne pas juste df_raw.replace('-',0.00) de travail dans ce cas?
  • Étonnamment, il n', mais pourquoi ne pas fonctionner de la manière dont je le fais, alors?
  • parce que votre regex est de trouver une correspondance pour tous les -, si vous avez fait cela, alors il ne serait que de correspondre à l'entrée négative: df_raw.replace(['^-$'], ['0.00'], regex=True)
InformationsquelleAutor Boosted_d16 | 2015-08-25