数据分析是GIS开发者的日常任务之一。以前做数据分析,需要自己写代码、调参数、画图表,费时费力。现在用GPT,只需要描述你想要什么分析,AI就能帮你生成完整的分析代码。本文用郑州人才公寓的真实数据,演示如何用GPT做数据分析。
数据准备
分析之前先把数据准备好。郑州人才公寓数据包含以下字段:公寓名称、所属区域、地址、起步价格、总套数、经纬度坐标。数据存储在CSV文件中,一共59条记录,覆盖郑州7个主要行政区。
用Python读取数据只需要两行代码。第一行导入pandas库,第二行用read_csv读取文件。读取后可以查看数据的前几行,确认数据格式正确。数据里有一些空值需要处理,比如部分公寓的总套数字段是空的。部分地址字段不完整,缺少详细的门牌号。这些数据质量问题在后续分析中需要注意。
用GPT生成分析代码
数据概览分析
第一个分析任务是数据概览,了解数据的基本情况。给GPT的Prompt是:用Python分析这个CSV数据,字段包括name、district、price_start、total_units,请统计各区公寓数量、各区平均租金、租金分布。
GPT生成的代码包含三个分析。第一个是各区数量统计,用value_counts方法统计每个区域有多少个公寓。第二个是各区平均租金,用groupby分组后求均值。第三个是租金分布直方图,用matplotlib画出租金的分布情况。
运行代码后得到结果。金水区有15个公寓,是最多的。郑东新区有12个,排第二。中原区10个,二七区8个,管城区7个,惠济区6个,高新区5个。平均租金方面,郑东新区最高1800元,金水区1500元,高新区1300元,二七区1100元,中原区1000元,管城区900元,惠济区800元。租金分布呈现双峰形态,1000到1500元区间最集中,2000元以上是少量高端公寓。
空间分析
第二个分析任务是空间分析,计算每个公寓到郑州市中心的距离。给GPT的Prompt是:用Python计算每个人才公寓到郑州市中心113.65,34.76的距离,找出最近的5个和最远的5个。
GPT生成了一个haversine距离计算函数,然后对每条记录计算距离。运行结果显示,距离市中心最近的5个公寓都在金水区和二七区,距离都在3公里以内。距离最远的5个公寓主要在荥阳市和中牟县,距离在20到35公里。这说明郑州人才公寓的空间分布呈现中心密集、外围稀疏的特点。
相关性分析
第三个分析任务是分析租金和其他因素的关系。给GPT的Prompt是:分析租金和区域、距离市中心的关系,哪些因素影响租金。
GPT生成了相关性分析代码。结果显示租金和区域高度相关,郑东新区租金显著高于其他区域。租金和距离市中心呈负相关,距离越远租金越低,但相关系数只有负0.4,说明距离不是唯一因素。进一步分析发现,靠近地铁站的公寓租金高10到20个百分点,有商业配套的公寓租金高5到10个百分点。这些因素共同影响租金水平。
可视化分析
第四个分析任务是数据可视化,把分析结果画成图表。给GPT的Prompt是:用Python生成4张图表:各区数量柱状图、租金分布直方图、各区租金箱线图、空间分布地图。
GPT生成了完整的可视化代码。前三张图用matplotlib生成,第四张图用folium生成交互地图。运行后得到四张图表。柱状图清晰展示各区公寓数量差异。直方图展示租金分布形态。箱线图展示各区租金的分布范围和中位数。交互地图把所有公寓标记在地图上,不同区域用不同颜色,点击可以查看详情。
用GPT做深度洞察
数据分析不只是算数字,更重要的是发现洞察。我们可以让GPT根据分析结果给出解读和建议。
给GPT的Prompt是:根据以下分析结果,分析郑州人才公寓的市场特征和选择建议。数据:金水区15个公寓平均租金1500元,郑东新区12个公寓平均租金1800元,中原区10个公寓平均租金1000元。距离市中心最近3公里内有8个公寓,3到10公里有25个公寓,10公里外有26个公寓。
GPT给出的分析很到位。它指出郑州人才公寓市场呈现三个特征。第一个是区位分化明显,郑东新区是价格高地,中原区是价格洼地,租金差异接近一倍。第二个是空间分布不均,中心区域密度高但价格也高,外围区域价格低但通勤成本高。第三个是配套影响显著,地铁沿线和商业配套完善的公寓更受欢迎。
GPT还给出了实用的选择建议。预算有限的求职者应该优先考虑中原区和惠济区,租金低面积大。追求通勤便利的上班族应该考虑金水区,位置适中价格合理。收入较高追求品质的人群可以考虑郑东新区,配套最好环境最好。有车一族可以考虑外围区域,停车方便价格便宜。
数据质量检查
在实际分析中,数据质量往往是最大的问题。我们可以让GPT帮我们检查数据质量。
给GPT的Prompt是:检查这个数据集的质量问题,包括缺失值、异常值、格式不一致。
GPT生成了数据质量检查代码。它检查了每列的缺失值数量,发现total_units列有8条缺失,price_start列有2条缺失。它检查了数值字段的分布,发现价格字段有一个异常值20000元,可能是数据录入错误。它检查了文本字段的格式,发现地址字段有的带"号"有的不带,格式不统一。
根据检查结果,我们可以清洗数据。把异常值20000元修改为2000元。把缺失的total_units用同区域的平均值填充。统一地址字段的格式。清洗后再做分析,结果更准确。
分析报告生成
最后我们可以让GPT根据分析结果自动生成报告。
给GPT的Prompt是:根据以上分析结果,生成一份Markdown格式的数据分析报告,包括数据概览、空间分析、租金分析、结论建议四个部分。
GPT生成了完整的报告。报告结构清晰,数据准确,结论合理。它把分析结果组织成专业的报告格式,包含数据表格、分析文字、可视化图表。报告可以直接用在工作汇报或者公众号文章中。
总结
用GPT做数据分析的核心优势是效率高。传统方式做一次完整的数据分析需要2到3小时,用GPT只需要30分钟。从数据读取、清洗、分析、可视化到报告生成,每个环节都可以让GPT帮忙。GPT生成的代码质量不错,基本逻辑正确,只需要少量修改就能用。
但也要注意GPT的局限。它不了解你的业务背景,可能给出不合理的分析建议。它的代码可能有小bug,需要调试。它不能替代你的专业判断,分析结果需要你来验证。正确的做法是把GPT当助手,让它帮你写代码、提建议,但关键决策还是你来做。