2016-08-20 2 views
2

Angenommen, df ist ein Datenrahmenobjekt, "ca" ist eine der Variablen.Fehlende Werte in Pandas Dataform falsch

>>> df.ca.value_counts() 
0.0 176 
1.0  65 
2.0  38 
3.0  20 
?  4 
Name: ca, dtype: int64 

Wie Sie sehen können, habe ich vier fehlende Werte. Ich möchte sie ausfüllen. Verwenden Sie den folgenden Code:

>>> df.loc[df.ca == '?', 'ca'] = 0.0 
0.0 176 
1.0  65 
2.0  38 
3.0  20 
0.0  4 
Name: ca, dtype: int64 

Warum habe ich 5 eindeutige Werte? Ich möchte fünfte Zeile in erste Zeile zusammenführen, d. H.

0.0 176 + 4 = 180 
1.0  65 
2.0  38 
3.0  20 

Wie kann ich es beheben?

Antwort

0

Da '?' war einer Ihrer Werte, ich weiß, dass df.ca entweder dtypeobject oder string ist. Wenn Sie replace('?', 0.) haben Sie jetzt beide Zeichenfolge und float 0.0. Nachdem Sie alle in Float konvertiert haben, sollten Sie kein Problem haben.

df.ca.replace('?', 0.).astype(float).value_counts() 

0.0 180 
1.0  65 
2.0  38 
3.0  20 
dtype: int64 
0

Folgende ziemlich Werke zu:

In [193]: df = pd.DataFrame({'ca': [0.0]*176 + [1.0]*65 + [2.0]*38 + [3.0]*20 + ['?']*4}) 

In [194]: df.ca.value_counts() 
Out[194]: 
0.0 176 
1.0  65 
2.0  38 
3.0  20 
?  4 
Name: ca, dtype: int64 

In [195]: df.loc[df.ca == '?', 'ca'] = 0.0 

In [196]: df.ca.value_counts() 
Out[196]: 
0.0 180 
1.0  65 
2.0  38 
3.0  20 
Name: ca, dtype: int64 
Verwandte Themen