在传染病研究领域,社交媒体数据已被证明可作为预测感冒和流感季节的发作和进展的指标。在本文中,我们将使用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. Java中的Properties类

    目录 Java中的Properties类 前言 主要方法 读取Properties文件 相关实例 Java中的Properties类 前言 Java中的Properties类属于配置文件,以键值对的方 ...

  2. VRRP笔记二:配置keepalived为实现haproxy高可用的配置文件示例

    ! Configuration File for keepalived global_defs { notification_email { linuxedu@foxmail.com mageedu@ ...

  3. PHP PSR-2 代码风格规范

    代码风格规范 本篇规范是 PSR-1 基本代码规范的继承与扩展. 本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便. 当多名程序员在多个项目中合 ...

  4. [PHP] 报错和“@” - 工作

    以下几点关于报错和@的关系理解 在PHP中使用@加在某个语句前面,可以抑制错误在脚本的执行过程中输出到IO: 如果在某个语句上使用了@,则可以将语句内的各种嵌套的脚本可能存在的报错都会被抑制住: 如果 ...

  5. String.slice

    String.slice(start, end)start从字符串的哪个index开始截取 默认值0 如果为负值,则从字符串的尾部向前倒推indexend到从字符串的哪个index结束截取 默认值st ...

  6. 高效JS简化版

    详:.doc (颜色标注)2章17条 2018.6.24 星期日 1:24 第 1 章 让自己习惯 JavaScript 第 1 条:了解你使用的 JavaScript 版本 ES5 引入了另一种版本 ...

  7. mingster.com

    Good to Great: Why Some Companies Make the Leap... and Others Don'tby Jim Collinshttp://rcm.amazon.c ...

  8. 广州CVTE招聘-测试开发工程师

    内推邮箱:keweisheng@cvte.com 地点:广州 公司简介 CVTE成立于2005年,总部位于广州科学城,旗下设有多家独立的子公司,在香港设有全球服务中心,在国内设有21个营销服务中心和近 ...

  9. 解决sendmail发送邮件慢的问题

    sendmail默认会先监听本机的邮件服务,如果本机邮件服务访问不了,在访问其他的邮件服务器 自己测试将本机主机名(通过hostname命令查看)从/etc/hosts中删除,发送邮件的速度就非常快了 ...

  10. marquee上下无缝滚动

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name=&qu ...