2017-10-15 33 views
0

je charger une trame de données à partir d'une base de données et une colonne qui est un dict, comme ceci:Pandas df.to_csv() enregistre les valeurs dict sous forme de chaîne. Comment puis-je récupérer les dicts en appelant pd.read_csv()?

id some_value ... coordinates 
15   34.7  {'type': 'Point', 'coordinates': [-3.2, 37.0]} 

Cependant, quand je sauve mon dataframe sur le disque en utilisant pd.to_csv() puis relue, la colonne contenant les coordonnées n'est pas un dict, mais une chaîne:

id some_value ... coordinates 
15   34.7  "{'type': 'Point', 'coordinates': [-3.2, 37.0]}" 

Comment puis-je dire Pandas à lire cette colonne comme dict, ou comment puis-je convertir cette colonne de nouveau dans un dict?

+0

df.coordinates ou df [ ''] coordonnées? – Ulu83

+0

Cela a fonctionné comme prévu. – Ulu83

Répondre

3

utilisation df['coordinates'].map(ast.literal_eval)

In [2333]: import ast 

In [2334]: type(df.coordinates[0]) 
Out[2334]: str 

In [2335]: df['coordinates'] = df['coordinates'].map(ast.literal_eval) 

In [2336]: type(df.coordinates[0]) 
Out[2336]: dict 

In [2337]: df 
Out[2337]: 
    id some_value          coordinates 
0 15  34.7 {u'type': u'Point', u'coordinates': [-3.2, 37.0]}