我正在构建一个数据集,最终用于制作一个带有Dash的交互式在线数据可视化应用程序
这是我的第一个Python项目(以及一般的编程),我正在尝试决定如何最好地检索、存储和更新数据集的数据
这是我正在使用的api: https://covid19api.com/
文件: https://documenter.getpostman.com/view/10808728/SzS8rjbc?version=latest
我已经写了一些代码,在每个国家的基础上提取我需要的数据,并对其进行处理,以创建我需要的系列
# Import the libraries
import requests
import pandas as pd
import numpy as np
from pandas import Series, DataFrame
from pandas import json_normalize
from datetime import datetime
import matplotlib.pyplot as plt
url = 'https://api.covid19api.com/total/dayone/country/ireland'
data = requests.get(url)
# Store the API response in a variable.
available_data = data.json()
df_ire = json_normalize(available_data)
# rename the date to datetime
df_ire = df_ire.rename(columns={"Date" : "datetime"})
#convert the data to datetime format
df_ire["datetime"] = pd.to_datetime(df_ire["datetime"])
# Create Daily new cases column & SMA
df_ire["New Cases"] = df_ire['Confirmed'].diff()
df_ire["SMA_10 New Cases"] = df_ire["New Cases"].rolling(window=10).mean()
# Create Daily new deaths column & SMA
df_ire["New Deaths"] = df_ire['Deaths'].diff()
df_ire["SMA_10 New Deaths"] = df_ire["New Deaths"].rolling(window=10).mean()
df_ire.fillna(0)
#set datetime as index
df_ire.set_index('datetime')
#Plot New Cases
fig, ax = plt.subplots(figsize=(15,7))
plt.grid(False)
plt.plot(df_ire["SMA_10 New Cases"], label="New Cases - 10-Day Moving Average",
color = "orange", linewidth = 4 )
ax.bar(df_ire.index, df_ire["New Cases"], label = "Daily New Confirmed Cases")
ax.set(xlabel='Days Since First Confirmed Case', ylabel='Number of Infections',
title='Ireland: Average vs Daily New Cases')
fig.autofmt_xdate()
plt.legend(loc=2);
plt.savefig('ireland_avg_vs_daily_cases', dpi = 1067, bbox_inches='tight' )
目前为止,我正在处理一个国家的数据,并使用matplotlib来找出如何最好地呈现和处理数据。以下是我迄今为止所做工作的一个例子:
完成的项目应该是这样的,但所有国家的变化率如下: https://dash-gallery.plotly.host/dash-opioid-epidemic/
首先,API是一个社区项目,正在开发中,我不想让他们的系统因请求而过载,所以我尝试构建我的项目,以尽量减少我给他们的系统带来的负载。我——很简单——不知道使用API的好/坏做法是什么,我不想成为“那个家伙”
正如我上面所说的,我还需要考虑存储数据并在适当的时间间隔进行更新。这是248个国家的时间序列数据,记录了几个变量,所有这些变量都需要在大熊猫中进行操作并定期添加。我应该构建一个大型数据帧吗?我应该为每个国家、每个变量建立一个数据框架吗
一旦我创建了数据集,我希望更新&;使用与上面类似的代码,使用以下api调用附加它: https://api.covid19api.com/summary
这是一个好计划吗?它应该是什么样子
我的计划是在Heroku(或类似的节目)结束后主持
如果您现在还在阅读,非常感谢。我知道这是一篇冗长的文章,我一下子问了很多问题。我整个下午都在思考如何继续进行这项工作,我知道我需要做出一些基本决定才能继续进行。任何帮助都将不胜感激
目前没有回答
相关问题 更多 >
编程相关推荐