4 votes

Remplacer 0 par un blanc dans un cadre de données Python pandas

J'ai fait le code suivant qui enlève tous les zéros de mon df. Cependant, lorsqu'il y a un nombre contenant un zéro, il les supprime également.

e.g.
3016.2     316.2
   0.235      .235

data_usage_df['Data Volume (MB)'] = data_usage_df['Data Volume (MB)'].str.replace('0', '')

Pourriez-vous m'aider à comprendre comment faire une correspondance exacte de la cellule qui est égale à 0 et la remplacer par une valeur vide.

2voto

b2002 Points 546
data_usage_df = data_usage_df.astype(str)
data_usage_df['Data Volume (MB)'].replace(['0', '0.0'], '', inplace=True)

1voto

jezrael Points 290608

Je pense que vous devez ajouter ^ pour la recherche du début de la chaîne et $ pour la fin de la chaîne :

data_usage_df['Data Volume (MB)']=data_usage_df['Data Volume (MB)'].str.replace('^0.0$', '')

Un échantillon :

data_usage_df = pd.DataFrame({'Data Volume (MB)':[3016.2, 0.235, 1.4001, 0, 4.00]})

print (data_usage_df)
runfile('C:/Dropbox/work-joy/so/_t/test.py', wdir='C:/Dropbox/work-joy/so/_t')
   Data Volume (MB)
0         3016.2000
1            0.2350
2            1.4001
3            0.0000
4            4.0000

data_usage_df['Data Volume (MB)'] = data_usage_df['Data Volume (MB)'].astype(str)
data_usage_df['Data Volume (MB)']=data_usage_df['Data Volume (MB)'].str.replace('^0.0$', '')

print (data_usage_df)
  Data Volume (MB)
0           3016.2
1            0.235
2           1.4001
3                 
4              4.0

Une autre solution consiste à convertir la colonne to_numeric et où se trouve 0 donner un espace vide :

data_usage_df['Data Volume (MB)'] = data_usage_df['Data Volume (MB)'].astype(str)

data_usage_df.ix[pd.to_numeric(data_usage_df['Data Volume (MB)'], errors='coerce') == 0, 
                                                              ['Data Volume (MB)']] = ''

print (data_usage_df)
  Data Volume (MB)
0           3016.2
1            0.235
2           1.4001
3                 
4              4.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X