Skip to content

Instantly share code, notes, and snippets.

@rohitrajiit
Last active August 2, 2020 18:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rohitrajiit/2ca04e83b8adcfe414ce2c1e8b5d6435 to your computer and use it in GitHub Desktop.
Save rohitrajiit/2ca04e83b8adcfe414ce2c1e8b5d6435 to your computer and use it in GitHub Desktop.
import requests
import pandas
import json
import plotly.express as px
districts_daily = requests.get('https://api.covid19india.org/v4/timeseries.json')
districts_daily = districts_daily.text
districts_daily = json.loads(districts_daily)
dfs = []
for key in districts_daily.keys():
totalconfirmed= []
totaldeceased = []
totalrecovered = []
totaltested = []
deltaconfirmed = []
deltadeceased = []
deltarecovered = []
deltatested = []
dates = []
states = []
for date in districts_daily[key]['dates']:
deltas = districts_daily[key]['dates'][date].get('delta')
totals = districts_daily[key]['dates'][date].get('total')
if not deltas is None:
deltaconfirmed.append(deltas.get('confirmed'))
deltadeceased.append(deltas.get('deceased'))
deltarecovered.append(deltas.get('recovered'))
deltatested.append(deltas.get('tested'))
else:
deltaconfirmed.append(None)
deltadeceased.append(None)
deltarecovered.append(None)
deltatested.append(None)
if not totals is None:
totalconfirmed.append(totals.get('confirmed'))
totaldeceased.append(totals.get('deceased'))
totalrecovered.append(totals.get('recovered'))
totaltested.append(totals.get('tested'))
else:
totalconfirmed.append(None)
totaldeceased.append(None)
totalrecovered.append(None)
totaltested.append(None)
states.append(key)
dates.append(date)
df = pandas.DataFrame({'deltaconfirmed': deltaconfirmed, 'deltadeceased': deltadeceased, 'deltarecovered': deltarecovered,
'totalconfirmed': totalconfirmed, 'totaldeceased': totaldeceased, 'totalrecovered': totalrecovered,
'deltatested':deltatested, 'totaltested':totaltested,'date': dates, 'state': states})
df = df.fillna(method='ffill')
df = df.fillna(0)
dfs.append(df)
data = pandas.concat(dfs, ignore_index=True)
data['date']= pandas.to_datetime(data['date'], format = '%Y/%m/%d')
data = data[data['state']!='UN']
data = data[data['state']!='TT']
data = data.sort_values(by='date')
data2 =data[data['date']>data.groupby('state').min().max()['date']]
statenames = {
'HR': 'Haryana', 'DN':'Dadra and Nagar Haveli', 'AS':'Assam', 'TG':'Telangana', 'KL':'Kerala',
'AR':'Arunachal Pradesh', 'TN':'Tamil Nadu', 'TR':'Tripura', 'KA':'Karnataka',
'GA':'Goa', 'JK':'Jammu and Kashmir',
'AP':'Andhra Pradesh', 'UP':'Uttar Pradesh',
'GJ':'Gujarat', 'JH':'Jharkhand',
'LA':'Ladakh', 'MH':'Maharashtra', 'SK':'Sikkim',
'UT':'Uttaranchal', 'BR':'Bihar', 'PY':'Puducherry', 'CT':'Chhattisgarh',
'MP':'Madhya Pradesh', 'WB':'West Bengal', 'HP':'Himachal Pradesh',
'AN':'Andaman and Nicobar', 'PB':'Punjab', 'OR':'Odisha', 'ML':'Meghalaya', 'MZ':'Mizoram',
'CH':'Chandigarh', 'DL':'Delhi', 'MN':'Manipur',
'RJ':'Rajasthan', 'NL':'Nagaland'
}
data2['state'] = data2['state'].apply(lambda x:statenames[x])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment