Sto tentando di riempire nessun valore in un dataframe di Pandas con 0 per solo alcuni sottoinsiemi di colonne.Pandas dataframe fillna() solo alcune colonne sul posto
Quando faccio:
import pandas as pd
df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
print df
df.fillna(value=0, inplace=True)
print df
L'output:
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 NaN 7.0
3 NaN 6.0 8.0
a b c
0 1.0 4.0 0.0
1 2.0 5.0 0.0
2 3.0 0.0 7.0
3 0.0 6.0 8.0
Esso sostituisce ogni None
con 0
's. Quello che voglio fare è, sostituire solo None
s nelle colonne a
e b
, ma non c
.
Qual è il modo migliore per farlo?
Sì, questo è esattamente quello che voglio! Grazie. Qualche modo per farlo? Il mio dataframe originale è piuttosto grande. – Sait
Non penso che ci sia un guadagno in termini di prestazioni in questo modo, dato che si sta sovrascrivendo l'orig df in ogni caso – EdChum
La loc è superflua qui, 'df [['a', 'b']] = df [[' a ',' b ']]. fillna (valore = 0) 'funzionerà ancora – EdChum