0
votes

Conversion de type de données entier de la chaîne

Je travaillais sur une colonne de la série de données de données dont le type de données était "objet" (STR). Son format était comme '301 694'.

Je souhaite que le type de données de cette colonne de la série Panda soit INT ou float. Erreurs reçues lorsque j'ai essayé au-dessous du code. P>

Veuillez partager les connaissances. P>

1) P>

df2['Total Ballots Counted'] = pd.to_numeric(df2['Total Ballots Counted'])


5 commentaires

Quelle est la question?


int (str (numéro) .replace (',', '')) pour obtenir 301694 à partir de 301.694


df.apply (lambda x: x.straplace (',', '')) avant de convertir avec .astype (int) ?


Python n'utilise pas la virgule pour séparer la partie réelle d'un nombre, mais utilisez le point. C'est peut-être ça le problème. Par exemple: a = 3.14 et b = 3,14 résultats des résultats des résultats: A comme float et < Code> B comme tuple .


@LazyCoder Suggestion m'a aidé. Je divise la chaîne et retirez la virgule par code difficile. et plus tard converti en int. En quelque sorte, remplacer ne fonctionne pas comme "", fait partie de la chaîne, pas de chaîne autonome. par exemple. "301,694".


4 Réponses :


0
votes

Vous pouvez essayer ce xxx


0 commentaires

0
votes

J'espère que cela aide: DF ['Colname'] = DF ['Colname']. Remplacer (',', ''). ") .ASTYPE (INT)

Une autre chose à faire est:

int ('. Joindre ([i pour i dans STR (numéro) .split (' ') si je n'en est pas']))) pour chaque numéro de la colonne. < / p>


1 commentaires

J'ai essayé cela, cela ne fonctionnait pas car il cherchait une virgule comme Strand, mais dans notre cas ", fait partie de la chaîne. par exemple. "123,123"



0
votes

Utilisation de

pd.to_numeric(df2['Total Ballots Counted'].replace({',':'.'},regex=True), errors='coerce')


0 commentaires

0
votes

@LazyCoder suggestion m'a aidé. Je divise la chaîne et retirez la virgule par code difficile. et plus tard converti en int. En quelque sorte, la fonction "remplacer" ne fonctionne pas comme "", fait partie d'une chaîne, pas une chaîne autonome. par exemple. "301,694".

def remove_coma(item):   
   str2=''
   for i in item:
           if i is not ',':                             
               str2 += str2.join(i)
   return int(str2)          

df['Total Ballots Counted'] = df['Total Ballots Counted'].apply(lambda item:remove_coma(item)) 


0 commentaires