pandas: to_numeric pour plusieurs colonnes
Je travaille avec la suite de df:
c.sort_values('2005', ascending=False).head(3)
GeoName ComponentName IndustryId IndustryClassification Description 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
37926 Alabama Real GDP by state 9 213 Support activities for mining 99 98 117 117 115 87 96 95 103 102 (NA)
37951 Alabama Real GDP by state 34 42 Wholesale trade 9898 10613 10952 11034 11075 9722 9765 9703 9600 9884 10199
37932 Alabama Real GDP by state 15 327 Nonmetallic mineral products manufacturing 980 968 940 1084 861 724 714 701 589 641 (NA)
Je veux de la force numérique sur toutes les années:
c['2014'] = pd.to_numeric(c['2014'], errors='coerce')
est-il un moyen facile de faire cela ou dois-je taper tous?
OriginalL'auteur Michael Perdue | 2016-04-23
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR: vous n'avez pas besoin de convertir vos valeurs par la suite, vous pouvez le faire à la volée lors de la lecture d'un fichier CSV:
Si vous avez besoin de convertir plusieurs colonnes numériques dtypes - utiliser la technique suivante:
La source de l'échantillon DF:
La conversion des colonnes sélectionnées numérique dtypes:
PS: si vous souhaitez sélectionner tous
string
(object
) les colonnes, utilisez les éléments suivants truc simple:un plaisir de vous aider 🙂
Complet: Vous pouvez également faire la conversion à la volée lors de l'initialisation d'un dataframe par exemple: pd.DataFrame(datalist, dtype=float), qui vous permet de convertir tous les champs de flotter lorsque cela est possible (et laisser les autres inchangé)
OriginalL'auteur MaxU
un autre moyen est d'utiliser
apply
, un liner:OriginalL'auteur muon
Vous pouvez utiliser:
Une autre solution avec
filtre
:Heureux de vous aider! Bonne chance!
OriginalL'auteur jezrael
Si vous êtes à la recherche pour une gamme de colonnes, vous pouvez essayer ceci:
Les exemples ci-dessus permettra de convertir le type float, pour toutes les colonnes commencent avec la 7e à la fin. Bien sûr, vous pouvez utiliser différents type ou de la plage.
Je pense que cela est utile lorsque vous avez une grande gamme de colonnes de convertir et beaucoup de lignes. Il ne vous fera pas aller au-dessus de chaque ligne par vous-même - je crois que numpy le faire plus efficacement.
Ceci est utile uniquement si vous savez que toutes les colonnes contiennent les numéros de seulement - il ne changera pas de "mauvaises valeurs" (comme string) NaN pour vous.
OriginalL'auteur Jeremy