J'ai le dataframe pandas suivant avec la colonne de distance en tant que listes de flotteurs.
event type distance 0 5 open [59235, 34893, 359670] 1 3 open [67614, 49029, 85593] 2 2 close [2828, 1666, 1717]
Comment puis-je convertir la colonne de distance pour avoir des listes d'entiers?
event type distance 0 5 open [59235.1953125, 34893.48046875, 35969.94921875] 1 3 open [67613.8828125, 49029.328125, 85592.8828125] 2 2 close [2827.9968261719, 1665.8785400391, 1717.271240]
3 Réponses :
Juste une boucle / appliquer:
df['distance'] = [[round(y) for y in x] for x in df['distance']]
Utilisez les pandas s'appliquent -
df['distances'] = df['distances'].apply(lambda x: [round(y) for y in x])
Il existe une autre façon de procéder. Notez que les solutions utilisant la compréhension de liste sont (souvent) considérées comme une meilleure pratique.
Créez une fonction:
df['distance2'] = list(map(make_integer, df['distance']))
La fonction créée est utilisée dans une autre fonction de map :
def make_integer(dat):
return(list(map(int, dat)))