Pandas df.to_csv()将dict值保存为字符串.在调用pd.read_csv()时如何获取序列?

Ulu*_*u83 2 python dictionary eval export-to-csv pandas

我从数据库加载一个DataFrame,并有一个dict列,如下所示:

id   some_value   ...  coordinates
15         34.7        {'type': 'Point', 'coordinates': [-3.2, 37.0]}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用pd.to_csv()将我的DataFrame保存到磁盘然后重新读取它时,包含坐标的列不是dict,而是字符串:

id   some_value   ...  coordinates
15         34.7        "{'type': 'Point', 'coordinates': [-3.2, 37.0]}"
Run Code Online (Sandbox Code Playgroud)

我如何告诉Pandas将此专栏作为dict读取,或者如何将此列转换回dict?

Zer*_*ero 6

使用 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]}
Run Code Online (Sandbox Code Playgroud)