Pandas df.to_csv()将字典值保存为字符串。如何在调用pd.read_csv()时返回字典?
问题描述:
我从数据库加载一个数据帧,并有一个列,它是一个字典,像这样:Pandas df.to_csv()将字典值保存为字符串。如何在调用pd.read_csv()时返回字典?
id some_value ... coordinates
15 34.7 {'type': 'Point', 'coordinates': [-3.2, 37.0]}
然而,当我用我的pd.to_csv数据帧保存到磁盘(),然后重新读取它,包含坐标列不是字典,而是一个字符串:
id some_value ... coordinates
15 34.7 "{'type': 'Point', 'coordinates': [-3.2, 37.0]}"
我怎么能告诉熊猫阅读本专栏的字典,或者我如何转换此列回的字典?
答
使用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]}
df.coordinates或DF [ '坐标']? – Ulu83
这按预期工作。 – Ulu83