2017-06-10 7 views
-2

Y a-t-il un moyen de supprimer seulement 'nan' d'un ensemble de données pour ne pas supprimer la ligne ou la colonne entière qui contient 'nan'? J'ai essayé le code ci-dessous mais le résultat n'était pas celui que je voulais.Supprimer la valeur 'NaN' dans la donnée

df = pd.read_csv('...csv') 
df.stack() 

Voici la partie de csv

enter image description here

Et voici après '.stack()'

enter image description here

Les en-têtes sont mélangées avec les données réelles . Je ne veux pas être mélangé!

+0

Quel est le but d'éliminer les éléments NaN de votre dataframe? Est-ce que calculer un type de statistique (par exemple, moyenne, écart-type)? –

Répondre

0

Vous pouvez utiliser:

df.fillna('') 

qui remplira na avec une chaîne vide ''. Ou vous pouvez le remplir comme vous voulez.

0

en utilisant dropna avec condition.

nan vlaue n'est pas égal.


et

vous pouvez déposer colonne ou une ligne à l'aide,

colonne: del df.column_name

ligne: df.drop([row_index])

0

Tenir compte de la dataframe df

df = pd.DataFrame(np.arange(9).reshape(3, 3)) 
df.iloc[1, 1] = np.nan 
print(df) 

    0 1 2 
0 0 1.0 2 
1 3 NaN 5 
2 6 7.0 8 

Vous pouvez déposer juste la cellule du milieu, mais seulement si nous stack

df.stack() 

0 0 0.0 
    1 1.0 
    2 2.0 
1 0 3.0 
    2 5.0 
2 0 6.0 
    1 7.0 
    2 8.0 
dtype: float64 
+0

ne fonctionne pas! J'ai un en-tête. Quand je le convertis en série j'ai besoin de le convertir en données et le problème est après la conversion l'en-tête serait mélangé avec les autres données ce qui n'est pas bon! – user8034918

+0

Cela fonctionne. J'ai démontré que c'est le cas. Le problème est que vous ne nous avez pas montré à quoi vous voulez ressembler. Dans votre esprit, qu'est-ce que lâcher un na sans faire tomber la rangée ressemble? – piRSquared

+0

vous pouvez vérifier le code initial à nouveau pour voir de quel type de problème je parle après l'application de la pile() – user8034918