J'utilise Pandas pour lire un certain nombre de CSV. Je passe un paramètre options json to dtype pour indiquer à Pandas les colonnes à lire en tant que chaîne au lieu de la valeur par défaut :
dtype_dic= { 'service_id':str, 'end_date':str, ... }
feedArray = pd.read_csv(feedfile , dtype = dtype_dic)
Dans mon scénario, tous les colonnes, à l'exception de quelques unes spécifiques, doivent être lues comme des chaînes de caractères. Ainsi, au lieu de définir plusieurs colonnes comme str dans dtype_dic
J'aimerais définir seulement les quelques éléments que j'ai choisis comme int ou float. Existe-t-il un moyen de le faire ?
Il s'agit d'une boucle parcourant plusieurs CSV avec des colonnes différentes, donc une conversion directe de colonne après avoir lu le csv entier comme chaîne ( dtype=str
), ne serait pas facile car je ne saurais pas immédiatement quelles sont les colonnes de ce csv. (Je préférerais consacrer cet effort à la définition de toutes les colonnes dans le dtype json).
Edit : Mais s'il y a un moyen de traiter la liste des noms de colonnes à convertir en nombre sans se tromper si cette colonne n'est pas présente dans ce csv, alors oui ce sera une solution valide, s'il n'y a pas d'autre moyen de le faire à l'étape de lecture du csv lui-même.
Note : cela semble comme une question déjà posée mais les réponses à cette question étaient très différentes (liées aux bools) et ne s'appliquent pas à cette question. S'il vous plaît ne pas marquer comme un double !