0
votes

Comment convertir des chaînes de flotteur en cordes entier?

J'ai une liste de nombres de flotteurs (apparaître comme des chaînes) et des valeurs NaN.

mylist2 = []
for i in mylist:
   mylist2.append(str(int(float(n))))


5 commentaires

Eh bien, que voulez-vous arriver pour NaN ou Infinity, ou des chaînes non entières?


À quoi ça sert? Semble légèrement étrange, non?


@ kaya3 il a dit qu'il voulait ignorer le reste du disque.


Mais qu'est-ce que "ignorer" signifie? Laissez-les comme ça, retirez-les, autre chose?


Comment avez-vous Obtenez les données? Pouvez-vous le réparer avant de créer le tableau?


3 Réponses :


0
votes

Bien qu'il existe différentes façons d'y parvenir. Mais allons votre chemin.
Cela pourrait aider.

 mylist2 = []
    for i in mylist:
        try:
            mylist2.append(str(int(float(n))))
        except:
            pass 


0 commentaires

0
votes

supposant que vous souhaitez simplement utiliser les valeurs d'origine lorsqu'elles ne sont pas des chaînes numériques pouvant être converties en entiers, vous pouvez écrire une fonction d'assistance pour essayer de faire la conversion et renvoyer la valeur d'origine si une exception est soulevée.

def try_int(s):
    try:
        return str(int(float(s)))
    except:
        return s

mylist2 = [try_int(s) for s in mylist]


0 commentaires

1
votes

Vous pouvez utiliser une carte qui appelle une fonction pour les convertir en InTS:

def to_int(x):
    try:
        x = str(int(float(x)))
    except:
        pass
    return x

np.array(list(map(to_int, mylist)), dtype=object)                                                                                                                                  
# array(['1', '0', nan, 'a'], dtype=object)```


0 commentaires