J'ai extrait certaines données de Investir Strard> em> mais les valeurs de colonnes sont toutes ( Ce que je veux, c'est:
essayé d'utiliser la fonction A qui remplacerait, car. P>
mais il ne fonctionne pas car dtype est un objet fort> em> p> p>
merci! p> 2558 6.678,08 2557 6.678,23 2556 7.095,95 2555 7.095,21 2554 7.093,34 ... 4 4.050,38 3 4.042,63 2 4.181,13 1 4.219.56 0 4.219.56 0 4.223,33 Nom: Alta, Longueur: 2559, DTYPE: Objet Code>) P>
2558 6678.08 2557 6897.95 2555 7151.95 2554 7151.95 2554 7151.21 2554 7151.95 2554 7151.95 2554 7151.21 2554 7151.21 2554 7151.34 3 4042.63 2 4181.63 1 4181.63 1 4219.56 0 4223.33 Nom: Alta, Durée: 2559, DTYPE: Flott Code> P> P>
def propre (x): x = x.replace (".", "") .replace ("", ".") p> p> p> P>
3 Réponses :
Reportez-vous à: Comment convertir le type de données: objet à flotteur64 en python ?
for i in range(0, len(df.columns)):
df.iloc[:,i] = pd.to_numeric(df.iloc[:,i], errors='ignore')
# errors='ignore' lets strings remain as 'non-null objects'
Pour remplacer vos valeurs, essayez ceci. Le résultat est votre DataFrame, Col est votre nom de colonne
result[col] = result[col].astype(float)
Merci mais cela ne fonctionnait pas ... il continue à apparaître ValueError: impossible de convertir une chaîne en float: '6.678,08' ...
Si votre local local utilise des virgules comme des signes décimaux, vous pouvez utiliser locale.atof (si non, vous devez d'abord définir une locale appropriée):
>>> s = pd.Series(['6.678,08','6.897,23'], name='Alta') >>> s 0 6.678,08 1 6.897,23 Name: Alta, dtype: object >>> import locale >>> locale.setlocale(locale.LC_NUMERIC, '') 'de_DE.UTF-8' >>> s.apply(locale.atof) 0 6678.08 1 6897.23 Name: Alta, dtype: float64
Merci beaucoup! Cela m'a vraiment aidé!
Pouvez-vous claire quelle est votre entrée et quelle sortie vous attendez-vous?
J'ai déjà édité @manishkumarsingh