2 votes

La conversion des éléments sélectionnés dans le cadre de données de float à integer a échoué.

J'essaie de convertir une liste d'éléments dans le cadre de données appelé "PIB" de flottants en entiers. Les cellules que je veux convertir sont spécifiées dans GDP.iloc[4,-10]. J'ai essayé les méthodes suivantes :

  1. for x in GDP.iloc[4,-10 :]: pd.to_numeric(x, downcast='signed')

  2. GDP.iloc[4,-10:]=GDP.iloc[4,-10:].astype(int)

  3. GDP.iloc[4,-10:]=int(GDP.iloc[4,-10:])

Cependant, aucune d'entre elles ne semble fonctionner pour convertir les flottants en entiers. Aucune erreur n'apparaît pour les méthodes 1 et 2 mais pour l'option 3, l'erreur suivante apparaît : TypeError : cannot convert the series to

Les données peuvent être consultées ici : https://data.worldbank.org/indicator/NY.GDP.MKTP.CD

GDP = pd.read_csv('world_bank.csv',header=None)

Méthode 1

for x in GDP.iloc[4,-10:]: 
   pd.to_numeric(x, downcast='signed')

Méthode 2 :

GDP.iloc[4,-10:]=GDP.iloc[4,-10:].astype(int)

Méthode 3 :

GDP.iloc[4,-10:]=int(GDP.iloc[4,-10:])

Quelqu'un peut-il m'aider ? Merci beaucoup.

Entrez la description de l'image ici

0voto

Gokul C Points 1

Vous pouvez utiliser astype(np.int64) pour convertir en int

import pandas as pd
import numpy as np

df = pd.read_csv('data.csv')

# df.head()
df = df.fillna('custom_none_values')
# df.head()
df = df[df['1960'] != 'custom_none_values']
df['1960'] = df['1960'].astype(np.int64)
df.head()

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X