Convertir tous les éléments en float Série en entier
J'ai une colonne, ayant les valeurs flottantes,dans un dataframe (je suis donc à l'appel de cette colonne comme le Flotteur de la série). Je veux convertir toutes les valeurs de type entier ou juste autour d'elle de sorte qu'il n'y a pas de décimales.
Disons le dataframe est df et de la colonne a, j'ai essayé ceci :
df['a'] = round(df['a'])
J'ai eu un message d'erreur indiquant que cette méthode ne peut être appliquée à une Série, uniquement applicable aux valeurs individuelles.
Ensuite, j'ai essayé ceci :
for obj in df['a']:
obj =int(round(obj))
Après ce que j'ai imprimé df mais il n'y a pas eu de changement.
Où vais-je tort?
Vous devez vous connecter pour publier un commentaire.
round
ne fonctionne pas, comme on l'appelle sur les pandas de la Série qui est semblable au tableau plutôt qu'une valeur scalaire, il est construit dans la méthodemp.De la série.ronde
pour fonctionner sur l'ensemble de la baie de la Série, après quoi vous pouvez modifier le dtype à l'aide deastype
:Aussi il n'est pas nécessaire d'itérer sur les lignes quand il y a des vectorisées méthodes disponibles
Également ceci:
N'a pas de mutation de la cellule individuelle dans la Série, c'est de l'exploitation sur une copie de la valeur qui est pourquoi le df n'est pas muté.
Le code dans votre boucle:
obj = int(round(obj))
Seules les modifications de l'objet dont le nom
obj
se réfère. Il ne modifie pas les données stockées dans la série. Si vous voulez faire cela, vous avez besoin de savoir où, dans la série de données est stockée et mise à jour il.E. g.
df['a'].iloc[i] = int(round(obj))
Lors de la conversion d'un flotteur pour un entier, j'ai découvert à l'aide de df.dtypes que la colonne j'ai essayé d'arrondir était un objet n'est pas d'un flotteur. La tour de commande ne fonctionne pas sur les objets afin de faire la conversion que j'ai fait:
df['a'] = pd.to_numeric(df['a'])
df['a'] = df['a'].round(0).astype(int)
ou une ligne:
Si vous voulez arrondir jusqu' que votre cause, vous pouvez utiliser
np.ceil
:Voir aussi Plancher ou le plafond d'une des pandas de la série en python?
Pas sûr qu'il y a beaucoup d'avantage à type de conversion de int; les pandas et numpy amour de flotteurs.