如何使用pd.read_html(如Corona的html)将实时数据导入python?

2024-04-26 09:47:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,希望从事数据绘图工作。我想用谷歌数据或世界计量器绘制新冠病毒-19的实时数据。我正在使用熊猫和plotly_graph_OBJ

我应该如何将实时数据导入到代码中,以便进一步将其用于Choropleth

import numpy as np
import pandas as pd
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode,iplot
init_notebook_mode(connected = True)

df = pd.read_csv('owid-covid-data.csv')
df.head()
data = dict(type='choropleth',
           colorscale = 'Viridis',
           reversescale = True,
           locations = df['location'],
           locationmode = 'country names',
           z = df['new_cases'],
            #zz = data['total_deaths_per_million'],
           text = df['iso_code'],
           colorbar = {'title':'COVID'})

layout = dict(title='COVID-19',
             geo = dict(showframe=True,
                       projection = {'type':'mercator'}))

choromap = go.Figure(data=[data],layout=layout)
iplot(choromap,validate=False)

Tags: 数据importtruegodfdatainitmode
2条回答

最简单的方法是从位于Github的Johns Hopkins CSSE的数据存储库获取每日病毒统计数据:https://github.com/CSSEGISandData/COVID-19

另一种方法是解析来自WorldMeters或类似站点的数据

也请查看resources at Kaggle

首先获取数据,然后使用适合您的数据的方法读入数据帧

例如

import requests

countries = requests.get('https://www.worldometers.info/coronavirus/#countries')
df = pd.read_html(countries.text)[-1]

df

Country,Other   TotalCases  NewCases    TotalDeaths NewDeaths   TotalRecovered  ActiveCases Serious,Critical    Tot Cases/1M pop    Deaths/1M pop   TotalTests  Tests/ 1M pop
0   World   2181308 +95,022 145471.0    +6,996  547069.0    1488768 56602.0 280.00  18.7    NaN NaN
1   China   82341   +46 3342.0  NaN 77892.0 1107    95.0    57.00   2.0 NaN NaN
2   USA 677570  +29,567 34617.0 +2,174  57508.0 585445  13369.0 2047.00 105.0   3398140.0   10266.0
3   Spain   184948  +4,289  19315.0 +503    74797.0 90836   7371.0  3956.00 413.0   930230.0    19896.0
4   Italy   168941  +3,786  22170.0 +525    40164.0 106607  2936.0  2794.00 367.0   1178403.0   19490.0
... ... ... ... ... ... ... ... ... ... ... ... ...
209 British Virgin Islands  3   NaN NaN NaN 2.0 1   NaN 99.00   NaN NaN NaN
210 Caribbean Netherlands   3   NaN NaN NaN NaN 3   NaN 114.00  NaN 10.0    381.0
211 Saint Pierre Miquelon   1   NaN NaN NaN NaN 1   NaN 173.00  NaN NaN NaN
212 Yemen   1   NaN NaN NaN NaN 1   NaN 0.03    NaN NaN NaN
213 Total:  2181308 +95,022 145471.0    +6,996  547069.0    1488768 56602.0 279.80  18.7    NaN NaN
214 rows × 12 columns

不确定谷歌的数据,不管他们提供的是API还是你需要搜集数据

相关问题 更多 >