Jupyter Notebook怎样获取微博签到地的经纬度并在地图上显示

2021-6-29 16:06| 发布者: Fuller| 查看: 6903| 评论: 0

摘要: 在上一篇关于微博签到位置相关的快捷采集案例中,我们详细介绍了怎样通过GooSeeker快捷采集获取和地理位置名相关的微博数据,有个字段是“签到地点”,需要翻译成经纬度,本文将讲解再用在Jupyter Notebook中翻译成 ...

1,提出获取微博签到地经纬度问题

在上一篇关于微博签到位置相关的快捷采集案例中,我们详细介绍了怎样通过GooSeeker快捷采集获取和地理位置名相关的微博数据,见: 如何使用快捷采集-以微博签到数据采集为例 。在导出的数据表中,有个字段是“签到地点”,如下图所示:

有很多同学问,怎样基于签到地点,得到实际的经纬度数据。本Notebook案例就是针对这个问题的实验。

1.1,数据采集

见之前已发布的1篇文章:如何使用快捷采集-以微博签到数据采集为例。本Jupyter Notebook使用GooSeeker快捷采集:微博签到采集_此地热议 采集得到的结果表:temp_微博签到采集_此地热议_规则1列表_20xxxxxxxxxxxxx.xlsx。本notebook使用该表做实验

1.2,为什么要做成notebook数据处理模板

GooSeeker每年都要支持各个大学的毕业生采集数据完成他们的毕业设计,而且期望各种技术背景的毕业生都无障碍地分析数据,那么就从数据采集到数据分析各个步骤都提供一套便捷工具。

1. 采集步骤:微博采集工具项和快捷采集工具——不需要编程序和定义采集规则

GooSeeker有一套微博采集工具,专门面向不希望编写网络爬虫程序的研究者设计的。 例如,可以先从微博关键词搜索入口,把搜到的涉及“xx城市空气”的微博话题采集下来,然后把这些话题的微博博文采集下来。微博博文内容呈现方式很丰富,文字、图片、视频都有。这些内容都可以采集下来,分别进行分析。例如,将视频采集下来以后抽取关键帧图片,利用图片分析方法进行分析。 针对重点的微博内容,可以深入采集转发和评论,转发者和评论者,可分析和描述传播的特征和转发者和评论者的传播者特征。还可以根据博主的粉丝数计算传播的量化特征。

GooSeeker推出多个微博采集工具,匹配高校师生从不同角度、不同传播路径、不同内容呈现采集数据的需求。同样也适用于公共领域和民间舆论场分析,市场和商业环境分析等。

2. 文本处理步骤:GooSeeker分词和情感分析——导入文本,即可导出分析结果

数据采集下来之后,需要趁手的工具来做数据处理和数据分析,GooSeeker提供了文本分词和情感分析软件, 同时也推出了系列Jupyter Notebook,借助于python的大量第三方库,为数据分析大量强大的工具。

3. 数据分析步骤:做成Jupyter Notebook——只需稍许调整,就能套用上输出分析结果和可视化图表

Jupyter Notebook这类交互式数据探索和分析工具代表了一股不容忽视的潮流,借助于Python编程的强大力量,数据加工的能力和灵活性已经有相当明显的优势,尤其是程序代码和文字描述可以混合编排,数据探索和数据描述做完了,一篇研究报告也基本上成型了。

然而Python毕竟是一个全功能的编程语言,对于非编程出身的数据分析师来说,Pandas,Numpy,Matplotlib这些词让人望而生畏。本系列Notebook将设法解决这个问题,让非编程出身的数据分析师能够忽略复杂的编程过程,专注于数据处理和统计分析部分,就像使用Excel的公式一样驾驭Python。

所以,我们将尝试发布一系列Jupyter Notebook,像文档模板,一些基本的程序环境设置、文件操作等固化下来,在设定的分析场景下不需要改动程序代码。而数据处理部分的代码可以根据需要截取选用。每一项功能用一个code cell存代码,不需要的处理功能可以删除。

1.3,本模板适应的场景

本模板根据GooSeeker快捷采集:微博签到采集_此地热议(https://www.gooseeker.com/res/rule_620.html)采集得到的结果表:temp_微博签到采集_此地热议_规则1列表_20xxxxxxxxxxxxx.xlsx,对数据进行基本处理后,调用百度api获取每个地点的经纬度。

1.4,使用方法

基本操作顺序是:

1. 把GooSeeker快捷采集:微博签到采集_此地热议 采集得到的结果表:temp_微博签到采集_此地热议_规则1列表_20xxxxxxxxxxxxx.xlsx, 放在本notebook的data/raw文件夹中

2. 从头到尾执行本notebook的单元

注意:每个notebook项目目录都预先规划好了,具体参看Jupyter Notebook项目目录规划参考。如果要做多个分析项目,把整个模板目录专门拷贝一份给每个分析项目。

1.5,简要技术说明

在每个功能项单元,如果是不需要关心的编程细节,将注明【编程细节】。

本notebook主要实现以下几个步骤:

1. 读取data/raw文件夹中的微博签到采集结果文件:temp_微博签到采集_此地热议_规则1列表_20xxxxxxxxxxxxx.xlsx

2. 对数据表进行基本的预处理

3. 调用百度api获取每个签到地点的经纬度

2,第三方库

3,修改历史

2021-06-29:第一版发布

4,版权说明

本notebook是GooSeeker大数据分析团队开发的,所分析的源数据是GooSeeker网络爬虫软件从互联网上收集的公开数据,本notebook中的数据和代码可自由共享使用,包括转发、复制、修改、用于其他项目中。

5,准备程序环境

导入必要的Python程序包,设定要分析的文件名变量:

file_weibo_sign:微博签到采集结果表

6,检测data\raw目录下是否有微博签到结果表

本notebook为了让这个模板有更大的适应性,python程序中不是写死文件名,而是去查找名字含有“微博签到采集_此地热议”的文件。从微博快捷采集工具导出的结果文件的名字前半部分都是一样的,只是后面的数字不同,那么只要把导出的结果文件放在/data/raw文件夹,下面的代码不用修改就能运行成功。

但是要注意,在data/raw文件夹中不能放两个或者多个“微博签到采集_此地热议”采集结果文件。我们假定每个notebook处理一个结果文件。

7,读取微博签到结果表

以下的演示以GooSeeker快捷采集:微博签到采集_此地热议采集得到的结果表:temp_微博签到采集_此地热议_规则1列表_20xxxxxxxxxxxxx.xlsx为例, 需要把结果表放在本notebook的data/raw文件夹中

8,查看微博签到结果表原始数据

9,数据预处理

按已经做的测试,如果直接把“信阳”或者“信阳·中环荣域”发给百度api,会查不到这个地点。 但是发“信阳市”或者“信阳市中环荣域”就可以查到。 所以需要对数据做预处理。

9.1,删除签到地点是nan的行

采集到的数据放在excel中看,如果“签到地点”字段没有数据,那么在DataFrame中就是一个NaN,会影响后面的程序执行,所以,要把空的行删除。

9.2,把签到地点字段的点(·)替换成市

9.3,把签到地点字段的值只是城市,后面没有跟“市”的,在后面加上一个“市”。比如“信阳”修改成“信阳市”

9.4,显示替换后的数据

9.5,在dataframe的最后增加一列:经纬度

9.6,定义获取经纬度数据的函数

9.7,获取经纬度数据

9.8,显示获得的经纬度数据

10,把签到地点按经纬度标注到地图上

11,下载Jupyter Notebook

下载源代码请进入:用python获取微博签到地的经纬度并在地图上显示


鲜花

握手

雷人

路过

鸡蛋

最新评论

GMT+8, 2024-12-22 13:45