首页 > 解决方案 > DataFrame:从一列中的字符串字典到两列中的浮点数 {'latitude': '34.04', 'longitude': '-118.24'}

问题描述

我有一个df带有 column的 pandas DataFrame latlng。此列中的行具有格式

{'latitude': '34.041005', 'longitude': '-118.249569'}.

为了能够向地图添加标记(使用 folium librairie),我想创建两列'latitude'longitude在此示例中分别包含34.041005-118.249569


编辑: 设法让它与这第一步一起工作: df['latlng'] = df['latlng'].map(eval)

标签: pythonpandasdataframegeolocationfolium

解决方案


您可以使用pd.json_normalize来避免apply成本高昂:

In [684]: df_out = pd.json_normalize(df.latlong)
In [686]: df_out
Out[686]: 
    latitude    longitude
0  34.041005  -118.249569
1  30.041005  -120.249569

然后您可以将这些列连接回df如下所示:

pd.concat([df.drop('latlong', axis=1), df_out], axis=1)

推荐阅读