Supprimer la non-numérique de lignes dans une colonne avec les pandas
Il y a un dataframe comme la suivante, et il a un impur colonne 'id' qui il sholud être une colonne numérique
id, name
1, A
2, B
3, C
tt, D
4, E
5, F
de, G
Est-il une manière concise pour supprimer les lignes car tt et de ne sont pas des valeurs numériques
tt,D
de,G
de faire le dataframe propre?
id, name
1, A
2, B
3, C
4, E
5, F
OriginalL'auteur Akira Sendoh | 2015-11-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la méthode standard de chaînes
isnumeric
et de l'appliquer à chaque valeur de votreid
colonne:Ou si vous souhaitez utiliser
id
comme indice que vous pouvez faire:Modifier. Ajouter timings
Même si le cas avec
pd.to_numeric
n'est pas à l'aide deapply
méthode, il est presque deux fois plus lent qu'avec l'application denp.isnumeric
pourstr
colonnes. Aussi, j'ai ajouter une option à l'aide de pandasstr.isnumeric
qui est de moins en moins de taper et encore plus vite, puis à l'aide depd.to_numeric
. Maispd.to_numeric
est plus général, car il pourrait travailler avec tout type de données (non seulement des chaînes de caractères).OriginalL'auteur Anton Protopopov
Utilisant
pd.to_numeric
Si vous souhaitez conserver la colonne comme un nombre et non un objet, vous pourriez avoir besoin d'appeler
pd.to_numeric
séparément.Pas De
apply
😀 !OriginalL'auteur Zero
Étant donné que
df
est votre dataframe,Ce qu'il fait est de passage chaque valeur de la
id
colonne à laisinstance
fonction et vérifie si c'est uneint
. Puis elle retourne un booléen tableau, et enfin retour uniquement les lignes où il y aTrue
.Si vous avez également besoin de tenir compte de
float
valeurs, une autre option est la suivante:Note que de toute façon n'est pas en place, de sorte que vous aurez besoin de le réaffecter à l'original de votre df, ou en créer un nouveau:
OriginalL'auteur DeepSpace