在传染病研究领域,社交媒体数据已被证明可作为预测感冒和流感季节的发作和进展的指标。在本文中,我们将使用Google Trends API来衡量与冠状病毒的状态。我们将使用python谷歌趋势API pytrends在州一级分析google搜索“冠状病毒”。

安装依赖

要安装pytrends,请打开命令行并输入:

pip install pytrends

对于我们这里,如果需要代理的话需要在安装requests的依赖

pip install requests[socks]

编写代码

然后打开你喜欢的编辑器(我用PyCharm社区版)

from pytrends.request import TrendReq

接下来,我们指定主机语言,时区和有效负载。 我们将主机语言指定为英语(“ en-US”),时区指定为“中央标准时区”,即“ 360”,并且可以将google属性过滤器(gprop)保留为空字符串。 我们还设置了category = 0,它对应于与关键字相关的所有类别。让我们获取2020年2月至2020年3月在纽约的“冠状病毒”数据:

pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload(['Coronavirus'], cat=0, timeframe='2020-02-01 2020-03-10', gprop='', geo='US-NY')

然后,我们定义一个dataframe为生成的pytrends对象,并打印前五行:

df = pytrends.interest_over_time()
print(df.head())


我们还可以使用seaborn和matplotlib绘制“冠状病毒”搜索的时间序列:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pdsns.set()
df['timestamp'] = pd.to_datetime(df.index)
sns.lineplot(df['timestamp'], df['Coronavirus'])plt.title("Normalized Searches for Coronavirus in NY")
plt.ylabel("Number of Searches")
plt.xlabel("Date")


让我们对马萨诸塞州的“冠状病毒”做同样的事情:

封装成函数

我们可以定义一个函数,使我们可以为任何周提取此数据:

def get_searches(key_word, state):
pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload([key_word], cat=0, timeframe='2020-02-01 2020-03-10', gprop='',geo='US-{}'.format(state))
df = pytrends.interest_over_time() print(df.head()) sns.set()
df['timestamp'] = pd.to_datetime(df.index)
sns.lineplot(df['timestamp'], df[key_word]) plt.title("Normalized Searches for {} in {}".format(key_word, state))
plt.ylabel("Number of Searches")
plt.xlabel("Date")

下面我们看看 NY, MA, CA:

get_searches('Coronavirus', 'NY')
get_searches('Coronavirus', 'MA')
get_searches('Coronavirus', 'CA')


我们可以提取其他州数据或者整个美国的数据。 也可以使用其他关键字输入进行操作。 也许您想搜索“Coronavirus symptoms”(症状)或“Coronavirus mortality rate”(死亡率)。

总结

我们使用python库“ pytrends”提取了与关键字“冠状病毒”相对应的州级Google趋势数据。 社交媒体数据(例如Google趋势数据)可能对衡量与公众健康相关主题(例如冠状病毒)的社交参与度很有用。 这可以帮助疾病预防控制中心等卫生机构定量评估需求,分配资源并传达预防措施。 我希望您发现这篇文章有用/有趣。

从曲线我们就能看到,虽然川普嘴上说不重视,但是美国民众可不是这么想的,大家在很早以前就已经非常重视了,并且在3月11日达到了峰值,当时正好是NBA球星米切尔和汤姆汉克斯感染所以美国民众的关注度达到了高峰。

这里是送的

最后再验证下为什么老外都喜欢屯厕纸?
有报道说:老外把冠状病毒coronavirus和诺如病毒norovirus给混淆了,而诺如病毒引发的主要症状就是腹泻,也没有疫苗和特效药物,那我们看下来老外对这个词的关注程度吧:

看样子还真是这样的,这个关键词热度在11月以后飙升,基本增长的趋势和冠状病毒一样,所以由此来看,真的和拼错有一定的关系。

数据采集实战:通过Python获取和分析Google趋势中Covid-19的关注程度的更多相关文章

  1. (数据科学学习手札47)基于Python的网络数据采集实战(2)

    一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集 ...

  2. selenium2自动化测试实战--基于Python语言

    自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...

  3. python获取系统内存占用信息的实例方法

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控, ...

  4. kafka实战教程(python操作kafka),kafka配置文件详解

    kafka实战教程(python操作kafka),kafka配置文件详解 应用往Kafka写数据的原因有很多:用户行为分析.日志存储.异步通信等.多样化的使用场景带来了多样化的需求:消息是否能丢失?是 ...

  5. Python文章相关性分析---金庸武侠小说分析

    百度到<金庸小说全集 14部>全(TXT)作者:金庸 下载下来,然后读取内容with open('names.txt') as f: data = [line.strip() for li ...

  6. kubernetes之监控Prometheus实战--prometheus介绍--获取监控(一)

    Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的开源监控系统 .它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016 ...

  7. Python 获取车票信息

    提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...

  8. 用python探索和分析网络数据

    Edited by Markdown Refered from: John Ladd, Jessica Otis, Christopher N. Warren, and Scott Weingart, ...

  9. python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)

    python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...

随机推荐

  1. MAC上安装maven以及配置Intellij IDEA

    大前提:java环境已经配置好 maven是对于java工程的管理 一.maven安装到mac 1.首先,maven下载地址http://maven.apache.org/download.cgi 点 ...

  2. cs231n spring 2017 lecture7 Training Neural Networks II

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  3. Hadoop伪分布式HDFS环境搭建和使用

    1.环境要求 Java版本不低于Hadoop要求,并配置环境变量 2.安装 1)在网站hadoop.apache.org下载稳定版本的Hadoop包 2)解压压缩包 检查Hadoop是否可用 hado ...

  4. bootstrap实现多选项及回显

    1.前端 <link rel="stylesheet" href="${ctxStatic}/js/bootstrap-select-1.12.2/dist/css ...

  5. Java中的基本运算符

    一.算术运算符运算符:对常量或者变量进行操作的符号表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式.注意:不同运算符连接的表达式体现的是不同类型的表达式. + 加法运算,字 ...

  6. unicode编码与解码

    unicode编码与解码,代码如下 package com.fenqiguanjia.api.services; /** * Created by daixianjun on 2017/9/3. */ ...

  7. 红杉资本的Dropbox上市,国内哪些产品会跟着受益?

    ​ ​每一个估值达到10亿美元以上的互联网.科技独角兽企业,都将上市当做"终极荣光".但事实上,上市只是这些独角兽企业开启全新时代的开端而已.很多气势汹汹且看似前景一片光明的独角兽 ...

  8. 851. spfa求最短路

    给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible. 数据保证不存在负权回路. 输入格式 ...

  9. 机器学习入门 - 逻辑(Logistic)回归(5)

    原文地址:http://www.bugingcode.com/machine_learning/ex7.html 把所有的问题都转换为程序问题,可以通过程序来就问题进行求解了. 这里的模拟问题来之于C ...

  10. SpringDataJpa2

    1.SpringDataJpa的扩展 - 抽取 创建一个BaseRepository接口然后去继承JpaRepository和JpaSpecificationExecutor 然后在里面写我们自己想要 ...