2017-10-07 7 views
1

Je me demandais s'il y avait un moyen de lire les valeurs catégorielles au cours du processus read_csv().read_csv lire dans les valeurs catégoriques?

Normalement, vous pouvez faire un converti après le fait avec quelque chose comme:

df.zone = df.zone.astype('category') 

A ce stade, le df prend plus de mémoire et je suis à la recherche d'un moyen de réduire cela.

J'ai essayé des choses comme:

parking_meters = pd.read_csv('parking_meter_data.csv', 
          converters={'zone': pd.Categorical(), 
             'sub_area': pd.Categorical(), 
             'area': pd.Categorical(), 
             'config_name': pd.Categorical(), 
             'pole' : str(), 
             'longitude' : np.float(), 
             'latitude' : np.float() 
             }) 
parking_meters.memory_usage(deep=True).sum() 

Cependant, les données catégoriques a besoin d'un argument d'initialisation des données réelles, qui est dans le fichier CSV.

Répondre

3

Essayons avec dtype:

parking_meters = pd.read_csv('parking_meter_data.csv', 
          dtype={'zone': 'category', 
             'sub_area': 'category', 
             'area': 'category', 
             'config_name': 'category' 
             })