You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从单个Pandas Series提取坐标并绘制散点图

解决Pandas Series中坐标列表绘制散点图的问题

嗨,我太懂这个困扰了——核心问题就是Pandas没法自动把单个列表元素拆成散点图需要的X、Y两个维度,咱们直接上实用解决方案:

方法一:拆分坐标到单独列(直观易懂)

先把geometry.coordinates里的每个列表拆成独立的X、Y列,再调用散点图:

import pandas as pd

# 提取X轴坐标(列表第一个元素)
df1['x'] = df1['geometry.coordinates'].apply(lambda coord: coord[0])
# 提取Y轴坐标(列表第二个元素)
df1['y'] = df1['geometry.coordinates'].apply(lambda coord: coord[1])

# 现在可以正常绘制散点图了
df1.plot.scatter(x='x', y='y')

方法二:快速转成DataFrame(更高效)

如果你的数据量较大,用tolist()把Series转成二维列表,再直接构造DataFrame会更高效:

# 把坐标列表批量转成带列名的DataFrame
coords_df = pd.DataFrame(df1['geometry.coordinates'].tolist(), columns=['longitude', 'latitude'])

# 直接用这个新DataFrame绘制散点图
coords_df.plot.scatter(x='longitude', y='latitude')

为什么原来的代码会报错?

你之前用df1['geometry.coordinates'].plot.scatter()时,Pandas看到的是一个每个元素都是列表的Series,而scatter()必须明确接收x和y两个独立的序列/列名,它没办法自动解析单个列表里的两个值,所以会抛出TypeError提示缺少必要参数。

如果后续你需要处理更多地理空间数据,也可以试试geopandas库,它能直接识别这种坐标格式并绘制地图,但上面的方法已经能完美解决当前的散点图需求啦。

内容的提问来源于stack exchange,提问作者Luke Hickinbotham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 22:07:51