Deploy India Growth Metrics Dashboard
Browse files- README.md +130 -9
- app.py +232 -0
- data/india_growth_metrics.csv +38 -0
- data/timeseries.csv +334 -0
- requirements.txt +8 -0
README.md
CHANGED
@@ -1,12 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
---
|
11 |
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 🇮🇳 Decode India: Smart AI-Enhanced Dashboard for Growth Metrics
|
2 |
+
|
3 |
+
A powerful interactive dashboard that visualizes and analyzes growth metrics for 35 major Indian cities using AI, time series forecasting, and cluster-based insights.
|
4 |
+
|
5 |
+
## 🚀 Live Demo
|
6 |
+
|
7 |
+
**🌐 View the live dashboard**: [Hugging Face Spaces](https://huggingface.co/spaces/your-username/decode-india-dashboard)
|
8 |
+
|
9 |
+
---
|
10 |
+
|
11 |
+
## 🚀 Features
|
12 |
+
|
13 |
+
- 📊 **Compare Development Metrics**: Visual comparisons between cities on metrics like health, education, infrastructure, etc.
|
14 |
+
- 🔁 **Time Series Forecasting**: Uses ARIMA models to predict future values for selected indicators.
|
15 |
+
- 🌐 **Radar Chart Visualization**: View cities' SDG performance across multiple indicators.
|
16 |
+
- 🧠 **AI-Powered Insights**: Automatically highlights strongest and weakest areas for each city.
|
17 |
+
- 🌍 **Twin City Matching**: Suggests cities with similar developmental patterns.
|
18 |
+
- 🎯 **Clustering**: KMeans-based segmentation to group cities with similar development profiles.
|
19 |
+
- 🧮 **Correlation Analysis**: Examine relationships between key indicators.
|
20 |
+
|
21 |
+
---
|
22 |
+
|
23 |
+
## 📁 Project Structure
|
24 |
+
```
|
25 |
+
Decode-India/
|
26 |
+
│
|
27 |
+
├── app.py # Main Dash application
|
28 |
+
├── data/
|
29 |
+
│ ├── india_growth_metrics.csv # City-wide metrics data
|
30 |
+
│ └── timeseries.csv # Year-wise data (2015–2023) for forecasting
|
31 |
+
├── requirements.txt # Python dependencies
|
32 |
+
└── README.md # Instructions and documentation
|
33 |
+
```
|
34 |
+
|
35 |
+
---
|
36 |
+
|
37 |
+
## 🌟 Deploy on Hugging Face Spaces (Recommended)
|
38 |
+
|
39 |
+
### Step 1: Create Hugging Face Account
|
40 |
+
1. Go to [huggingface.co](https://huggingface.co) and sign up
|
41 |
+
2. Verify your email address
|
42 |
+
|
43 |
+
### Step 2: Create a New Space
|
44 |
+
1. Click on your profile → "New Space"
|
45 |
+
2. Choose settings:
|
46 |
+
- **Owner**: Your username
|
47 |
+
- **Space name**: `decode-india-dashboard`
|
48 |
+
- **Space SDK**: **Gradio** (we'll use this for Dash)
|
49 |
+
- **License**: MIT
|
50 |
+
- **Visibility**: Public
|
51 |
+
|
52 |
+
### Step 3: Upload Your Code
|
53 |
+
1. Clone the space repository:
|
54 |
+
```bash
|
55 |
+
git clone https://huggingface.co/spaces/your-username/decode-india-dashboard
|
56 |
+
cd decode-india-dashboard
|
57 |
+
```
|
58 |
+
|
59 |
+
2. Copy your files:
|
60 |
+
```bash
|
61 |
+
# Copy all your project files
|
62 |
+
cp -r /path/to/your/project/* .
|
63 |
+
```
|
64 |
+
|
65 |
+
3. Push to Hugging Face:
|
66 |
+
```bash
|
67 |
+
git add .
|
68 |
+
git commit -m "Initial deployment"
|
69 |
+
git push
|
70 |
+
```
|
71 |
+
|
72 |
+
### Step 4: Your App is Live!
|
73 |
+
Your dashboard will be available at:
|
74 |
+
`https://huggingface.co/spaces/your-username/decode-india-dashboard`
|
75 |
+
|
76 |
---
|
77 |
+
|
78 |
+
## ⚙️ How to Run the Dashboard Locally
|
79 |
+
|
80 |
+
### 1️⃣ Clone the Repository
|
81 |
+
|
82 |
+
```bash
|
83 |
+
git clone https://github.com/your-username/Decode-India.git
|
84 |
+
cd Decode-India
|
85 |
+
```
|
86 |
+
### Create & Activate a Virtual Environment
|
87 |
+
python -m venv .venv
|
88 |
+
# Activate the environment:
|
89 |
+
# On Windows
|
90 |
+
```bash
|
91 |
+
.venv\Scripts\activate
|
92 |
+
```
|
93 |
+
# On macOS/Linux
|
94 |
+
```bash
|
95 |
+
source .venv/bin/activate
|
96 |
+
```
|
97 |
+
### Install Required Dependencies
|
98 |
+
```bash
|
99 |
+
pip install -r requirements.txt
|
100 |
+
```
|
101 |
+
Or install individually:
|
102 |
+
```bash
|
103 |
+
pip install dash pandas plotly numpy scikit-learn statsmodels
|
104 |
+
```
|
105 |
+
### Add the Data Files
|
106 |
+
Place the following files in the data/ folder:
|
107 |
+
|
108 |
+
india_growth_metrics.csv – Contains city-wise growth indicators.
|
109 |
+
|
110 |
+
timeseries.csv – Contains yearly data for each city for time series analysis (2015–2023)
|
111 |
+
|
112 |
+
### Run the Application
|
113 |
+
```bash
|
114 |
+
python app.py
|
115 |
+
```
|
116 |
+
|
117 |
+
### View in Browser
|
118 |
+
Visit:
|
119 |
+
|
120 |
+
```bash
|
121 |
+
http://127.0.0.1:8050/
|
122 |
+
```
|
123 |
+
|
124 |
---
|
125 |
|
126 |
+
## 🎯 Alternative Deployment Options
|
127 |
+
|
128 |
+
See [DEPLOYMENT.md](DEPLOYMENT.md) for other deployment options including:
|
129 |
+
- Railway
|
130 |
+
- Render
|
131 |
+
- Heroku
|
132 |
+
- Docker
|
133 |
+
- VPS/Cloud servers
|
app.py
ADDED
@@ -0,0 +1,232 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import pandas as pd
|
3 |
+
import plotly.express as px
|
4 |
+
import plotly.graph_objects as go
|
5 |
+
from sklearn.cluster import KMeans
|
6 |
+
from sklearn.preprocessing import StandardScaler
|
7 |
+
import numpy as np
|
8 |
+
import statsmodels.api as sm
|
9 |
+
import os
|
10 |
+
|
11 |
+
# Load main metrics
|
12 |
+
df = pd.read_csv("data/india_growth_metrics.csv")
|
13 |
+
df.columns = df.columns.str.strip()
|
14 |
+
cities = df['City'].unique()
|
15 |
+
metrics = df.columns[1:-1] # Exclude City and Gini Coefficient
|
16 |
+
|
17 |
+
# Cluster setup
|
18 |
+
scaler = StandardScaler()
|
19 |
+
cluster_data = scaler.fit_transform(df[metrics])
|
20 |
+
kmeans = KMeans(n_clusters=4, random_state=0).fit(cluster_data)
|
21 |
+
df['Cluster'] = kmeans.labels_
|
22 |
+
|
23 |
+
def create_bar_chart(selected_cities, selected_metric):
|
24 |
+
"""Create bar chart for selected cities and metric"""
|
25 |
+
if not selected_cities or not selected_metric:
|
26 |
+
return None
|
27 |
+
|
28 |
+
filtered = df[df['City'].isin(selected_cities)]
|
29 |
+
fig = px.bar(filtered, x='City', y=selected_metric, color='City',
|
30 |
+
title=f"{selected_metric} Comparison")
|
31 |
+
return fig
|
32 |
+
|
33 |
+
def create_radar_chart(selected_cities):
|
34 |
+
"""Create radar chart for selected cities"""
|
35 |
+
if not selected_cities:
|
36 |
+
return None
|
37 |
+
|
38 |
+
radar_df = df[df['City'].isin(selected_cities)].set_index('City')
|
39 |
+
melted = radar_df[metrics].reset_index().melt(id_vars='City', var_name='Metric', value_name='Value')
|
40 |
+
fig = px.line_polar(melted, r='Value', theta='Metric', color='City',
|
41 |
+
line_close=True, title="Radar View")
|
42 |
+
fig.update_traces(fill='toself')
|
43 |
+
return fig
|
44 |
+
|
45 |
+
def create_correlation_matrix(selected_cities):
|
46 |
+
"""Create correlation matrix for selected cities"""
|
47 |
+
if not selected_cities:
|
48 |
+
return None
|
49 |
+
|
50 |
+
corr = df[df['City'].isin(selected_cities)][metrics].corr()
|
51 |
+
fig = px.imshow(corr, text_auto=True, title="Correlation Matrix")
|
52 |
+
return fig
|
53 |
+
|
54 |
+
def generate_ai_insights(selected_cities):
|
55 |
+
"""Generate AI insights for selected cities"""
|
56 |
+
if not selected_cities:
|
57 |
+
return "Please select cities to generate insights."
|
58 |
+
|
59 |
+
insights = []
|
60 |
+
for city in selected_cities:
|
61 |
+
city_data = df[df['City'] == city]
|
62 |
+
if not city_data.empty:
|
63 |
+
highest = city_data[metrics].idxmax(axis=1).values[0]
|
64 |
+
lowest = city_data[metrics].idxmin(axis=1).values[0]
|
65 |
+
insights.append(f"🏙️ **{city}** excels in **{highest}** but needs improvement in **{lowest}**.")
|
66 |
+
|
67 |
+
return "\n".join(insights) if insights else "No insights available."
|
68 |
+
|
69 |
+
def find_twin_cities(selected_cities):
|
70 |
+
"""Find twin cities for selected cities"""
|
71 |
+
if not selected_cities:
|
72 |
+
return "Please select cities to find twin cities."
|
73 |
+
|
74 |
+
twin_info = []
|
75 |
+
for city in selected_cities:
|
76 |
+
city_data = df[df['City'] == city]
|
77 |
+
if not city_data.empty:
|
78 |
+
city_vec = city_data[metrics].values
|
79 |
+
df_temp = df.copy()
|
80 |
+
df_temp['distance'] = np.linalg.norm(df_temp[metrics].values - city_vec, axis=1)
|
81 |
+
nearest = df_temp[df_temp['City'] != city].sort_values('distance').iloc[0]['City']
|
82 |
+
twin_info.append(f"🏙️ **{city}**'s most similar city is **{nearest}**.")
|
83 |
+
|
84 |
+
return "\n".join(twin_info) if twin_info else "No twin cities found."
|
85 |
+
|
86 |
+
def create_time_series(selected_metric, selected_city):
|
87 |
+
"""Create time series forecast for selected metric and city"""
|
88 |
+
if not selected_metric or not selected_city:
|
89 |
+
return None
|
90 |
+
|
91 |
+
try:
|
92 |
+
time_df = pd.read_csv("data/timeseries.csv", encoding='utf-8-sig')
|
93 |
+
time_df.columns = time_df.columns.str.strip()
|
94 |
+
time_df['City'] = time_df['City'].str.strip()
|
95 |
+
|
96 |
+
fig = go.Figure()
|
97 |
+
city_df = time_df[time_df['City'] == selected_city].sort_values('Year')
|
98 |
+
city_df['Year'] = pd.to_datetime(city_df['Year'], format='%Y')
|
99 |
+
|
100 |
+
if selected_metric in city_df.columns:
|
101 |
+
ts = city_df.set_index('Year')[selected_metric]
|
102 |
+
fig.add_trace(go.Scatter(x=ts.index, y=ts.values, mode='lines+markers',
|
103 |
+
name=selected_metric))
|
104 |
+
try:
|
105 |
+
model = sm.tsa.ARIMA(ts, order=(1, 1, 0)).fit()
|
106 |
+
forecast = model.get_forecast(steps=3)
|
107 |
+
forecast_index = pd.date_range(start=ts.index[-1] + pd.offsets.YearBegin(),
|
108 |
+
periods=3, freq='YS')
|
109 |
+
forecast_series = pd.Series(forecast.predicted_mean.values, index=forecast_index)
|
110 |
+
fig.add_trace(go.Scatter(x=forecast_series.index, y=forecast_series.values,
|
111 |
+
mode='lines+markers', name=f"{selected_metric} Forecast",
|
112 |
+
line=dict(dash='dash')))
|
113 |
+
except:
|
114 |
+
pass
|
115 |
+
|
116 |
+
fig.update_layout(title=f"Time Series Forecast: {selected_metric} in {selected_city}",
|
117 |
+
xaxis_title='Year')
|
118 |
+
return fig
|
119 |
+
except Exception as e:
|
120 |
+
return None
|
121 |
+
|
122 |
+
def create_cluster_view(metric):
|
123 |
+
"""Create cluster visualization"""
|
124 |
+
if not metric:
|
125 |
+
return None
|
126 |
+
|
127 |
+
fig = px.scatter(df, x=metric, y='Gini Coefficient', color='Cluster',
|
128 |
+
hover_data=['City'], title="City Clustering")
|
129 |
+
return fig
|
130 |
+
|
131 |
+
# Create Gradio interface
|
132 |
+
with gr.Blocks(title="India Growth Metrics Dashboard", theme=gr.themes.Soft()) as demo:
|
133 |
+
gr.Markdown("# 🇮🇳 Decode India: Smart AI-Enhanced Dashboard for Growth Metrics")
|
134 |
+
gr.Markdown("A powerful interactive dashboard that visualizes and analyzes growth metrics for 35 major Indian cities using AI, time series forecasting, and cluster-based insights.")
|
135 |
+
|
136 |
+
with gr.Row():
|
137 |
+
with gr.Column(scale=1):
|
138 |
+
gr.Markdown("### 📊 Dashboard Controls")
|
139 |
+
|
140 |
+
city_selector = gr.Dropdown(
|
141 |
+
choices=list(cities),
|
142 |
+
value=list(cities[:3]),
|
143 |
+
label="Select Cities",
|
144 |
+
multiselect=True
|
145 |
+
)
|
146 |
+
|
147 |
+
metric_selector = gr.Dropdown(
|
148 |
+
choices=list(metrics),
|
149 |
+
value=metrics[0],
|
150 |
+
label="Select Metric"
|
151 |
+
)
|
152 |
+
|
153 |
+
time_series_city = gr.Dropdown(
|
154 |
+
choices=list(cities),
|
155 |
+
value=cities[0],
|
156 |
+
label="Select City for Time Series"
|
157 |
+
)
|
158 |
+
|
159 |
+
with gr.Row():
|
160 |
+
with gr.Column(scale=1):
|
161 |
+
gr.Markdown("### 📈 Bar Chart Comparison")
|
162 |
+
bar_chart = gr.Plot(label="Bar Chart")
|
163 |
+
|
164 |
+
with gr.Column(scale=1):
|
165 |
+
gr.Markdown("### 🌐 Radar Chart")
|
166 |
+
radar_chart = gr.Plot(label="Radar Chart")
|
167 |
+
|
168 |
+
with gr.Row():
|
169 |
+
with gr.Column(scale=1):
|
170 |
+
gr.Markdown("### 🧮 Correlation Matrix")
|
171 |
+
correlation_matrix = gr.Plot(label="Correlation Matrix")
|
172 |
+
|
173 |
+
with gr.Column(scale=1):
|
174 |
+
gr.Markdown("### 🎯 City Clustering")
|
175 |
+
cluster_view = gr.Plot(label="Cluster View")
|
176 |
+
|
177 |
+
with gr.Row():
|
178 |
+
with gr.Column(scale=1):
|
179 |
+
gr.Markdown("### 📈 Time Series Forecast")
|
180 |
+
time_series = gr.Plot(label="Time Series")
|
181 |
+
|
182 |
+
with gr.Column(scale=1):
|
183 |
+
gr.Markdown("### 🧠 AI Insights")
|
184 |
+
ai_insights = gr.Markdown(label="AI Insights")
|
185 |
+
|
186 |
+
with gr.Row():
|
187 |
+
with gr.Column(scale=1):
|
188 |
+
gr.Markdown("### 🌍 Twin City Recommendations")
|
189 |
+
twin_cities = gr.Markdown(label="Twin Cities")
|
190 |
+
|
191 |
+
# Event handlers
|
192 |
+
def update_charts(cities, metric):
|
193 |
+
return (
|
194 |
+
create_bar_chart(cities, metric),
|
195 |
+
create_radar_chart(cities),
|
196 |
+
create_correlation_matrix(cities),
|
197 |
+
create_cluster_view(metric),
|
198 |
+
generate_ai_insights(cities),
|
199 |
+
find_twin_cities(cities)
|
200 |
+
)
|
201 |
+
|
202 |
+
def update_time_series(metric, city):
|
203 |
+
return create_time_series(metric, city)
|
204 |
+
|
205 |
+
# Connect inputs to outputs
|
206 |
+
city_selector.change(
|
207 |
+
update_charts,
|
208 |
+
inputs=[city_selector, metric_selector],
|
209 |
+
outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, ai_insights, twin_cities]
|
210 |
+
)
|
211 |
+
|
212 |
+
metric_selector.change(
|
213 |
+
update_charts,
|
214 |
+
inputs=[city_selector, metric_selector],
|
215 |
+
outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, ai_insights, twin_cities]
|
216 |
+
)
|
217 |
+
|
218 |
+
time_series_city.change(
|
219 |
+
update_time_series,
|
220 |
+
inputs=[metric_selector, time_series_city],
|
221 |
+
outputs=[time_series]
|
222 |
+
)
|
223 |
+
|
224 |
+
metric_selector.change(
|
225 |
+
update_time_series,
|
226 |
+
inputs=[metric_selector, time_series_city],
|
227 |
+
outputs=[time_series]
|
228 |
+
)
|
229 |
+
|
230 |
+
# Launch the app
|
231 |
+
if __name__ == "__main__":
|
232 |
+
demo.launch()
|
data/india_growth_metrics.csv
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
City,Population Growth Rate,Education Index,Health Index,Infrastructure Quality Index,Digital Penetration Rate,Green Cover %,Employment Rate,Gini Coefficient
|
2 |
+
Delhi,2.5,0.82,0.78,0.81,0.88,20.5,72.1,0.35
|
3 |
+
Mumbai,2.3,0.84,0.76,0.79,0.91,18.3,70.5,0.37
|
4 |
+
Bangalore,2.7,0.87,0.80,0.83,0.95,24.1,74.2,0.34
|
5 |
+
Hyderabad,2.6,0.85,0.79,0.82,0.93,22.9,73.0,0.36
|
6 |
+
Chennai,2.4,0.83,0.77,0.80,0.89,19.8,71.3,0.35
|
7 |
+
Kolkata,2.2,0.80,0.75,0.76,0.86,21.4,69.9,0.38
|
8 |
+
Ahmedabad,2.5,0.81,0.74,0.78,0.87,20.0,70.2,0.37
|
9 |
+
Pune,2.6,0.86,0.79,0.81,0.92,23.0,72.5,0.34
|
10 |
+
Jaipur,2.3,0.78,0.72,0.75,0.84,18.7,68.4,0.39
|
11 |
+
Lucknow,2.1,0.76,0.70,0.72,0.82,17.2,67.1,0.40
|
12 |
+
Kanpur,2.0,0.75,0.69,0.70,0.80,16.8,66.5,0.41
|
13 |
+
Nagpur,2.4,0.82,0.76,0.77,0.88,21.1,70.0,0.36
|
14 |
+
Indore,2.5,0.83,0.77,0.78,0.89,20.5,70.8,0.35
|
15 |
+
Bhopal,2.3,0.80,0.74,0.76,0.85,19.2,69.3,0.37
|
16 |
+
Patna,2.0,0.74,0.68,0.69,0.78,15.9,65.0,0.42
|
17 |
+
Ranchi,2.1,0.75,0.69,0.70,0.79,16.2,65.7,0.41
|
18 |
+
Raipur,2.2,0.76,0.70,0.71,0.80,16.5,66.1,0.40
|
19 |
+
Chandigarh,2.6,0.88,0.82,0.84,0.94,25.0,75.2,0.33
|
20 |
+
Amritsar,2.3,0.80,0.74,0.76,0.86,20.3,69.7,0.36
|
21 |
+
Surat,2.7,0.84,0.77,0.79,0.90,22.0,71.8,0.35
|
22 |
+
Vadodara,2.5,0.82,0.75,0.77,0.88,21.3,70.6,0.36
|
23 |
+
Nashik,2.4,0.81,0.74,0.76,0.87,20.7,70.1,0.37
|
24 |
+
Faridabad,2.3,0.80,0.73,0.75,0.85,19.5,69.2,0.38
|
25 |
+
Meerut,2.2,0.79,0.72,0.74,0.83,18.9,68.0,0.39
|
26 |
+
Rajkot,2.5,0.83,0.76,0.78,0.89,21.0,71.0,0.36
|
27 |
+
Varanasi,2.1,0.77,0.70,0.72,0.81,17.4,66.8,0.40
|
28 |
+
Madurai,2.3,0.80,0.73,0.75,0.85,19.1,69.0,0.37
|
29 |
+
Coimbatore,2.4,0.82,0.75,0.77,0.87,20.0,70.3,0.36
|
30 |
+
Jodhpur,2.2,0.78,0.71,0.73,0.83,18.2,67.9,0.39
|
31 |
+
Gwalior,2.1,0.76,0.69,0.71,0.80,17.0,66.0,0.40
|
32 |
+
Agra,2.2,0.77,0.70,0.72,0.82,17.8,67.2,0.39
|
33 |
+
Thiruvananthapuram,2.5,0.89,0.84,0.85,0.95,26.1,76.0,0.32
|
34 |
+
Vijayawada,2.4,0.81,0.74,0.76,0.86,19.9,70.0,0.37
|
35 |
+
Visakhapatnam,2.5,0.83,0.76,0.78,0.88,21.1,71.2,0.36
|
36 |
+
Ludhiana,2.3,0.79,0.72,0.74,0.84,18.8,68.5,0.38
|
37 |
+
Jamshedpur,2.2,0.78,0.71,0.73,0.83,18.0,67.7,0.39
|
38 |
+
Hubli,2.3,0.79,0.72,0.74,0.84,18.5,68.2,0.38
|
data/timeseries.csv
ADDED
@@ -0,0 +1,334 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
City,Year,Population Growth Rate,Education Index,Health Index,Infrastructure Quality Index
|
2 |
+
Delhi,2015,2.50,0.80,0.75,0.78
|
3 |
+
Delhi,2016,2.52,0.81,0.76,0.79
|
4 |
+
Delhi,2017,2.54,0.82,0.77,0.80
|
5 |
+
Delhi,2018,2.56,0.83,0.78,0.81
|
6 |
+
Delhi,2019,2.58,0.84,0.79,0.82
|
7 |
+
Delhi,2020,2.60,0.85,0.80,0.83
|
8 |
+
Delhi,2021,2.62,0.86,0.81,0.84
|
9 |
+
Delhi,2022,2.64,0.87,0.82,0.85
|
10 |
+
Delhi,2023,2.66,0.88,0.83,0.86
|
11 |
+
Mumbai,2015,2.30,0.79,0.72,0.75
|
12 |
+
Mumbai,2016,2.32,0.80,0.73,0.76
|
13 |
+
Mumbai,2017,2.34,0.81,0.74,0.77
|
14 |
+
Mumbai,2018,2.36,0.82,0.75,0.78
|
15 |
+
Mumbai,2019,2.38,0.83,0.76,0.79
|
16 |
+
Mumbai,2020,2.40,0.84,0.77,0.80
|
17 |
+
Mumbai,2021,2.42,0.85,0.78,0.81
|
18 |
+
Mumbai,2022,2.44,0.86,0.79,0.82
|
19 |
+
Mumbai,2023,2.46,0.87,0.80,0.83
|
20 |
+
Bangalore,2015,2.70,0.81,0.76,0.78
|
21 |
+
Bangalore,2016,2.72,0.82,0.77,0.79
|
22 |
+
Bangalore,2017,2.74,0.83,0.78,0.80
|
23 |
+
Bangalore,2018,2.76,0.84,0.79,0.81
|
24 |
+
Bangalore,2019,2.78,0.85,0.80,0.82
|
25 |
+
Bangalore,2020,2.80,0.86,0.81,0.83
|
26 |
+
Bangalore,2021,2.82,0.87,0.82,0.84
|
27 |
+
Bangalore,2022,2.84,0.88,0.83,0.85
|
28 |
+
Bangalore,2023,2.86,0.89,0.84,0.86
|
29 |
+
Hyderabad,2015,2.60,0.80,0.75,0.76
|
30 |
+
Hyderabad,2016,2.62,0.81,0.76,0.77
|
31 |
+
Hyderabad,2017,2.64,0.82,0.77,0.78
|
32 |
+
Hyderabad,2018,2.66,0.83,0.78,0.79
|
33 |
+
Hyderabad,2019,2.68,0.84,0.79,0.80
|
34 |
+
Hyderabad,2020,2.70,0.85,0.80,0.81
|
35 |
+
Hyderabad,2021,2.72,0.86,0.81,0.82
|
36 |
+
Hyderabad,2022,2.74,0.87,0.82,0.83
|
37 |
+
Hyderabad,2023,2.76,0.88,0.83,0.84
|
38 |
+
Chennai,2015,2.40,0.78,0.74,0.74
|
39 |
+
Chennai,2016,2.42,0.79,0.75,0.75
|
40 |
+
Chennai,2017,2.44,0.80,0.76,0.76
|
41 |
+
Chennai,2018,2.46,0.81,0.77,0.77
|
42 |
+
Chennai,2019,2.48,0.82,0.78,0.78
|
43 |
+
Chennai,2020,2.50,0.83,0.79,0.79
|
44 |
+
Chennai,2021,2.52,0.84,0.80,0.80
|
45 |
+
Chennai,2022,2.54,0.85,0.81,0.81
|
46 |
+
Chennai,2023,2.56,0.86,0.82,0.82
|
47 |
+
Ahmedabad,2015,2.50,0.76,0.70,0.72
|
48 |
+
Ahmedabad,2016,2.52,0.77,0.71,0.73
|
49 |
+
Ahmedabad,2017,2.54,0.78,0.72,0.74
|
50 |
+
Ahmedabad,2018,2.56,0.79,0.73,0.75
|
51 |
+
Ahmedabad,2019,2.58,0.80,0.74,0.76
|
52 |
+
Ahmedabad,2020,2.60,0.81,0.75,0.77
|
53 |
+
Ahmedabad,2021,2.62,0.82,0.76,0.78
|
54 |
+
Ahmedabad,2022,2.64,0.83,0.77,0.79
|
55 |
+
Ahmedabad,2023,2.66,0.84,0.78,0.80
|
56 |
+
Pune,2015,2.40,0.79,0.74,0.75
|
57 |
+
Pune,2016,2.42,0.80,0.75,0.76
|
58 |
+
Pune,2017,2.44,0.81,0.76,0.77
|
59 |
+
Pune,2018,2.46,0.82,0.77,0.78
|
60 |
+
Pune,2019,2.48,0.83,0.78,0.79
|
61 |
+
Pune,2020,2.50,0.84,0.79,0.80
|
62 |
+
Pune,2021,2.52,0.85,0.80,0.81
|
63 |
+
Pune,2022,2.54,0.86,0.81,0.82
|
64 |
+
Pune,2023,2.56,0.87,0.82,0.83
|
65 |
+
Jaipur,2015,2.30,0.74,0.70,0.71
|
66 |
+
Jaipur,2016,2.32,0.75,0.71,0.72
|
67 |
+
Jaipur,2017,2.34,0.76,0.72,0.73
|
68 |
+
Jaipur,2018,2.36,0.77,0.73,0.74
|
69 |
+
Jaipur,2019,2.38,0.78,0.74,0.75
|
70 |
+
Jaipur,2020,2.40,0.79,0.75,0.76
|
71 |
+
Jaipur,2021,2.42,0.80,0.76,0.77
|
72 |
+
Jaipur,2022,2.44,0.81,0.77,0.78
|
73 |
+
Jaipur,2023,2.46,0.82,0.78,0.79
|
74 |
+
Lucknow,2015,2.20,0.72,0.68,0.70
|
75 |
+
Lucknow,2016,2.22,0.73,0.69,0.71
|
76 |
+
Lucknow,2017,2.24,0.74,0.70,0.72
|
77 |
+
Lucknow,2018,2.26,0.75,0.71,0.73
|
78 |
+
Lucknow,2019,2.28,0.76,0.72,0.74
|
79 |
+
Lucknow,2020,2.30,0.77,0.73,0.75
|
80 |
+
Lucknow,2021,2.32,0.78,0.74,0.76
|
81 |
+
Lucknow,2022,2.34,0.79,0.75,0.77
|
82 |
+
Lucknow,2023,2.36,0.80,0.76,0.78
|
83 |
+
Kanpur,2015,2.00,0.70,0.65,0.67
|
84 |
+
Kanpur,2016,2.02,0.71,0.66,0.68
|
85 |
+
Kanpur,2017,2.04,0.72,0.67,0.69
|
86 |
+
Kanpur,2018,2.06,0.73,0.68,0.70
|
87 |
+
Kanpur,2019,2.08,0.74,0.69,0.71
|
88 |
+
Kanpur,2020,2.10,0.75,0.70,0.72
|
89 |
+
Kanpur,2021,2.12,0.76,0.71,0.73
|
90 |
+
Kanpur,2022,2.14,0.77,0.72,0.74
|
91 |
+
Kanpur,2023,2.16,0.78,0.73,0.75
|
92 |
+
Nagpur,2015,2.30,0.76,0.71,0.73
|
93 |
+
Nagpur,2016,2.32,0.77,0.72,0.74
|
94 |
+
Nagpur,2017,2.34,0.78,0.73,0.75
|
95 |
+
Nagpur,2018,2.36,0.79,0.74,0.76
|
96 |
+
Nagpur,2019,2.38,0.80,0.75,0.77
|
97 |
+
Nagpur,2020,2.40,0.81,0.76,0.78
|
98 |
+
Nagpur,2021,2.42,0.82,0.77,0.79
|
99 |
+
Nagpur,2022,2.44,0.83,0.78,0.80
|
100 |
+
Nagpur,2023,2.46,0.84,0.79,0.81
|
101 |
+
Indore,2015,2.50,0.78,0.73,0.74
|
102 |
+
Indore,2016,2.52,0.79,0.74,0.75
|
103 |
+
Indore,2017,2.54,0.80,0.75,0.76
|
104 |
+
Indore,2018,2.56,0.81,0.76,0.77
|
105 |
+
Indore,2019,2.58,0.82,0.77,0.78
|
106 |
+
Indore,2020,2.60,0.83,0.78,0.79
|
107 |
+
Indore,2021,2.62,0.84,0.79,0.80
|
108 |
+
Indore,2022,2.64,0.85,0.80,0.81
|
109 |
+
Indore,2023,2.66,0.86,0.81,0.82
|
110 |
+
Bhopal,2015,2.30,0.74,0.69,0.71
|
111 |
+
Bhopal,2016,2.32,0.75,0.70,0.72
|
112 |
+
Bhopal,2017,2.34,0.76,0.71,0.73
|
113 |
+
Bhopal,2018,2.36,0.77,0.72,0.74
|
114 |
+
Bhopal,2019,2.38,0.78,0.73,0.75
|
115 |
+
Bhopal,2020,2.40,0.79,0.74,0.76
|
116 |
+
Bhopal,2021,2.42,0.80,0.75,0.77
|
117 |
+
Bhopal,2022,2.44,0.81,0.76,0.78
|
118 |
+
Bhopal,2023,2.46,0.82,0.77,0.79
|
119 |
+
Patna,2015,2.00,0.68,0.64,0.65
|
120 |
+
Patna,2016,2.02,0.69,0.65,0.66
|
121 |
+
Patna,2017,2.04,0.70,0.66,0.67
|
122 |
+
Patna,2018,2.06,0.71,0.67,0.68
|
123 |
+
Patna,2019,2.08,0.72,0.68,0.69
|
124 |
+
Patna,2020,2.10,0.73,0.69,0.70
|
125 |
+
Patna,2021,2.12,0.74,0.70,0.71
|
126 |
+
Patna,2022,2.14,0.75,0.71,0.72
|
127 |
+
Patna,2023,2.16,0.76,0.72,0.73
|
128 |
+
Ranchi,2015,2.10,0.69,0.65,0.66
|
129 |
+
Ranchi,2016,2.12,0.70,0.66,0.67
|
130 |
+
Ranchi,2017,2.14,0.71,0.67,0.68
|
131 |
+
Ranchi,2018,2.16,0.72,0.68,0.69
|
132 |
+
Ranchi,2019,2.18,0.73,0.69,0.70
|
133 |
+
Ranchi,2020,2.20,0.74,0.70,0.71
|
134 |
+
Ranchi,2021,2.22,0.75,0.71,0.72
|
135 |
+
Ranchi,2022,2.24,0.76,0.72,0.73
|
136 |
+
Ranchi,2023,2.26,0.77,0.73,0.74
|
137 |
+
Raipur,2015,2.20,0.70,0.66,0.67
|
138 |
+
Raipur,2016,2.22,0.71,0.67,0.68
|
139 |
+
Raipur,2017,2.24,0.72,0.68,0.69
|
140 |
+
Raipur,2018,2.26,0.73,0.69,0.70
|
141 |
+
Raipur,2019,2.28,0.74,0.70,0.71
|
142 |
+
Raipur,2020,2.30,0.75,0.71,0.72
|
143 |
+
Raipur,2021,2.32,0.76,0.72,0.73
|
144 |
+
Raipur,2022,2.34,0.77,0.73,0.74
|
145 |
+
Raipur,2023,2.36,0.78,0.74,0.75
|
146 |
+
Chandigarh,2015,2.60,0.85,0.81,0.82
|
147 |
+
Chandigarh,2016,2.62,0.86,0.82,0.83
|
148 |
+
Chandigarh,2017,2.64,0.87,0.83,0.84
|
149 |
+
Chandigarh,2018,2.66,0.88,0.84,0.85
|
150 |
+
Chandigarh,2019,2.68,0.89,0.85,0.86
|
151 |
+
Chandigarh,2020,2.70,0.90,0.86,0.87
|
152 |
+
Chandigarh,2021,2.72,0.91,0.87,0.88
|
153 |
+
Chandigarh,2022,2.74,0.92,0.88,0.89
|
154 |
+
Chandigarh,2023,2.76,0.93,0.89,0.90
|
155 |
+
Amritsar,2015,2.30,0.75,0.71,0.72
|
156 |
+
Amritsar,2016,2.32,0.76,0.72,0.73
|
157 |
+
Amritsar,2017,2.34,0.77,0.73,0.74
|
158 |
+
Amritsar,2018,2.36,0.78,0.74,0.75
|
159 |
+
Amritsar,2019,2.38,0.79,0.75,0.76
|
160 |
+
Amritsar,2020,2.40,0.80,0.76,0.77
|
161 |
+
Amritsar,2021,2.42,0.81,0.77,0.78
|
162 |
+
Amritsar,2022,2.44,0.82,0.78,0.79
|
163 |
+
Amritsar,2023,2.46,0.83,0.79,0.80
|
164 |
+
Surat,2015,2.70,0.79,0.74,0.76
|
165 |
+
Surat,2016,2.72,0.80,0.75,0.77
|
166 |
+
Surat,2017,2.74,0.81,0.76,0.78
|
167 |
+
Surat,2018,2.76,0.82,0.77,0.79
|
168 |
+
Surat,2019,2.78,0.83,0.78,0.80
|
169 |
+
Surat,2020,2.80,0.84,0.79,0.81
|
170 |
+
Surat,2021,2.82,0.85,0.80,0.82
|
171 |
+
Surat,2022,2.84,0.86,0.81,0.83
|
172 |
+
Surat,2023,2.86,0.87,0.82,0.84
|
173 |
+
Vadodara,2015,2.50,0.76,0.72,0.73
|
174 |
+
Vadodara,2016,2.52,0.77,0.73,0.74
|
175 |
+
Vadodara,2017,2.54,0.78,0.74,0.75
|
176 |
+
Vadodara,2018,2.56,0.79,0.75,0.76
|
177 |
+
Vadodara,2019,2.58,0.80,0.76,0.77
|
178 |
+
Vadodara,2020,2.60,0.81,0.77,0.78
|
179 |
+
Vadodara,2021,2.62,0.82,0.78,0.79
|
180 |
+
Vadodara,2022,2.64,0.83,0.79,0.80
|
181 |
+
Vadodara,2023,2.66,0.84,0.80,0.81
|
182 |
+
Nashik,2015,2.40,0.74,0.70,0.72
|
183 |
+
Nashik,2016,2.42,0.75,0.71,0.73
|
184 |
+
Nashik,2017,2.44,0.76,0.72,0.74
|
185 |
+
Nashik,2018,2.46,0.77,0.73,0.75
|
186 |
+
Nashik,2019,2.48,0.78,0.74,0.76
|
187 |
+
Nashik,2020,2.50,0.79,0.75,0.77
|
188 |
+
Nashik,2021,2.52,0.80,0.76,0.78
|
189 |
+
Nashik,2022,2.54,0.81,0.77,0.79
|
190 |
+
Nashik,2023,2.56,0.82,0.78,0.80
|
191 |
+
Faridabad,2015,2.30,0.73,0.69,0.70
|
192 |
+
Faridabad,2016,2.32,0.74,0.70,0.71
|
193 |
+
Faridabad,2017,2.34,0.75,0.71,0.72
|
194 |
+
Faridabad,2018,2.36,0.76,0.72,0.73
|
195 |
+
Faridabad,2019,2.38,0.77,0.73,0.74
|
196 |
+
Faridabad,2020,2.40,0.78,0.74,0.75
|
197 |
+
Faridabad,2021,2.42,0.79,0.75,0.76
|
198 |
+
Faridabad,2022,2.44,0.80,0.76,0.77
|
199 |
+
Faridabad,2023,2.46,0.81,0.77,0.78
|
200 |
+
Meerut,2015,2.20,0.72,0.67,0.69
|
201 |
+
Meerut,2016,2.22,0.73,0.68,0.70
|
202 |
+
Meerut,2017,2.24,0.74,0.69,0.71
|
203 |
+
Meerut,2018,2.26,0.75,0.70,0.72
|
204 |
+
Meerut,2019,2.28,0.76,0.71,0.73
|
205 |
+
Meerut,2020,2.30,0.77,0.72,0.74
|
206 |
+
Meerut,2021,2.32,0.78,0.73,0.75
|
207 |
+
Meerut,2022,2.34,0.79,0.74,0.76
|
208 |
+
Meerut,2023,2.36,0.80,0.75,0.77
|
209 |
+
Rajkot,2015,2.50,0.77,0.72,0.73
|
210 |
+
Rajkot,2016,2.52,0.78,0.73,0.74
|
211 |
+
Rajkot,2017,2.54,0.79,0.74,0.75
|
212 |
+
Rajkot,2018,2.56,0.80,0.75,0.76
|
213 |
+
Rajkot,2019,2.58,0.81,0.76,0.77
|
214 |
+
Rajkot,2020,2.60,0.82,0.77,0.78
|
215 |
+
Rajkot,2021,2.62,0.83,0.78,0.79
|
216 |
+
Rajkot,2022,2.64,0.84,0.79,0.80
|
217 |
+
Rajkot,2023,2.66,0.85,0.80,0.81
|
218 |
+
Varanasi,2015,2.10,0.70,0.66,0.68
|
219 |
+
Varanasi,2016,2.12,0.71,0.67,0.69
|
220 |
+
Varanasi,2017,2.14,0.72,0.68,0.70
|
221 |
+
Varanasi,2018,2.16,0.73,0.69,0.71
|
222 |
+
Varanasi,2019,2.18,0.74,0.70,0.72
|
223 |
+
Varanasi,2020,2.20,0.75,0.71,0.73
|
224 |
+
Varanasi,2021,2.22,0.76,0.72,0.74
|
225 |
+
Varanasi,2022,2.24,0.77,0.73,0.75
|
226 |
+
Varanasi,2023,2.26,0.78,0.74,0.76
|
227 |
+
Madurai,2015,2.30,0.73,0.68,0.70
|
228 |
+
Madurai,2016,2.32,0.74,0.69,0.71
|
229 |
+
Madurai,2017,2.34,0.75,0.70,0.72
|
230 |
+
Madurai,2018,2.36,0.76,0.71,0.73
|
231 |
+
Madurai,2019,2.38,0.77,0.72,0.74
|
232 |
+
Madurai,2020,2.40,0.78,0.73,0.75
|
233 |
+
Madurai,2021,2.42,0.79,0.74,0.76
|
234 |
+
Madurai,2022,2.44,0.80,0.75,0.77
|
235 |
+
Madurai,2023,2.46,0.81,0.76,0.78
|
236 |
+
Coimbatore,2015,2.40,0.75,0.70,0.72
|
237 |
+
Coimbatore,2016,2.42,0.76,0.71,0.73
|
238 |
+
Coimbatore,2017,2.44,0.77,0.72,0.74
|
239 |
+
Coimbatore,2018,2.46,0.78,0.73,0.75
|
240 |
+
Coimbatore,2019,2.48,0.79,0.74,0.76
|
241 |
+
Coimbatore,2020,2.50,0.80,0.75,0.77
|
242 |
+
Coimbatore,2021,2.52,0.81,0.76,0.78
|
243 |
+
Coimbatore,2022,2.54,0.82,0.77,0.79
|
244 |
+
Coimbatore,2023,2.56,0.83,0.78,0.80
|
245 |
+
Jodhpur,2015,2.20,0.72,0.67,0.69
|
246 |
+
Jodhpur,2016,2.22,0.73,0.68,0.70
|
247 |
+
Jodhpur,2017,2.24,0.74,0.69,0.71
|
248 |
+
Jodhpur,2018,2.26,0.75,0.70,0.72
|
249 |
+
Jodhpur,2019,2.28,0.76,0.71,0.73
|
250 |
+
Jodhpur,2020,2.30,0.77,0.72,0.74
|
251 |
+
Jodhpur,2021,2.32,0.78,0.73,0.75
|
252 |
+
Jodhpur,2022,2.34,0.79,0.74,0.76
|
253 |
+
Jodhpur,2023,2.36,0.80,0.75,0.77
|
254 |
+
Gwalior,2015,2.10,0.71,0.66,0.68
|
255 |
+
Gwalior,2016,2.12,0.72,0.67,0.69
|
256 |
+
Gwalior,2017,2.14,0.73,0.68,0.70
|
257 |
+
Gwalior,2018,2.16,0.74,0.69,0.71
|
258 |
+
Gwalior,2019,2.18,0.75,0.70,0.72
|
259 |
+
Gwalior,2020,2.20,0.76,0.71,0.73
|
260 |
+
Gwalior,2021,2.22,0.77,0.72,0.74
|
261 |
+
Gwalior,2022,2.24,0.78,0.73,0.75
|
262 |
+
Gwalior,2023,2.26,0.79,0.74,0.76
|
263 |
+
Agra,2015,2.20,0.70,0.66,0.68
|
264 |
+
Agra,2016,2.22,0.71,0.67,0.69
|
265 |
+
Agra,2017,2.24,0.72,0.68,0.70
|
266 |
+
Agra,2018,2.26,0.73,0.69,0.71
|
267 |
+
Agra,2019,2.28,0.74,0.70,0.72
|
268 |
+
Agra,2020,2.30,0.75,0.71,0.73
|
269 |
+
Agra,2021,2.32,0.76,0.72,0.74
|
270 |
+
Agra,2022,2.34,0.77,0.73,0.75
|
271 |
+
Agra,2023,2.36,0.78,0.74,0.76
|
272 |
+
Hubli,2015,2.30,0.74,0.69,0.70
|
273 |
+
Hubli,2016,2.32,0.75,0.70,0.71
|
274 |
+
Hubli,2017,2.34,0.76,0.71,0.72
|
275 |
+
Hubli,2018,2.36,0.77,0.72,0.73
|
276 |
+
Hubli,2019,2.38,0.78,0.73,0.74
|
277 |
+
Hubli,2020,2.40,0.79,0.74,0.75
|
278 |
+
Hubli,2021,2.42,0.80,0.75,0.76
|
279 |
+
Hubli,2022,2.44,0.81,0.76,0.77
|
280 |
+
Hubli,2023,2.46,0.82,0.77,0.78
|
281 |
+
Jamshedpur,2015,2.20,0.73,0.68,0.70
|
282 |
+
Jamshedpur,2016,2.22,0.74,0.69,0.71
|
283 |
+
Jamshedpur,2017,2.24,0.75,0.70,0.72
|
284 |
+
Jamshedpur,2018,2.26,0.76,0.71,0.73
|
285 |
+
Jamshedpur,2019,2.28,0.77,0.72,0.74
|
286 |
+
Jamshedpur,2020,2.30,0.78,0.73,0.75
|
287 |
+
Jamshedpur,2021,2.32,0.79,0.74,0.76
|
288 |
+
Jamshedpur,2022,2.34,0.80,0.75,0.77
|
289 |
+
Jamshedpur,2023,2.36,0.81,0.76,0.78
|
290 |
+
Kolkata,2015,2.20,0.74,0.70,0.72
|
291 |
+
Kolkata,2016,2.22,0.75,0.71,0.73
|
292 |
+
Kolkata,2017,2.24,0.76,0.72,0.74
|
293 |
+
Kolkata,2018,2.26,0.77,0.73,0.75
|
294 |
+
Kolkata,2019,2.28,0.78,0.74,0.76
|
295 |
+
Kolkata,2020,2.30,0.79,0.75,0.77
|
296 |
+
Kolkata,2021,2.32,0.80,0.76,0.78
|
297 |
+
Kolkata,2022,2.34,0.81,0.77,0.79
|
298 |
+
Kolkata,2023,2.36,0.82,0.78,0.80
|
299 |
+
Vijayawada,2015,2.40,0.77,0.72,0.74
|
300 |
+
Vijayawada,2016,2.42,0.78,0.73,0.75
|
301 |
+
Vijayawada,2017,2.44,0.79,0.74,0.76
|
302 |
+
Vijayawada,2018,2.46,0.80,0.75,0.77
|
303 |
+
Vijayawada,2019,2.48,0.81,0.76,0.78
|
304 |
+
Vijayawada,2020,2.50,0.82,0.77,0.79
|
305 |
+
Vijayawada,2021,2.52,0.83,0.78,0.80
|
306 |
+
Vijayawada,2022,2.54,0.84,0.79,0.81
|
307 |
+
Vijayawada,2023,2.56,0.85,0.80,0.82
|
308 |
+
Visakhapatnam,2015,2.50,0.78,0.73,0.75
|
309 |
+
Visakhapatnam,2016,2.52,0.79,0.74,0.76
|
310 |
+
Visakhapatnam,2017,2.54,0.80,0.75,0.77
|
311 |
+
Visakhapatnam,2018,2.56,0.81,0.76,0.78
|
312 |
+
Visakhapatnam,2019,2.58,0.82,0.77,0.79
|
313 |
+
Visakhapatnam,2020,2.60,0.83,0.78,0.80
|
314 |
+
Visakhapatnam,2021,2.62,0.84,0.79,0.81
|
315 |
+
Visakhapatnam,2022,2.64,0.85,0.80,0.82
|
316 |
+
Visakhapatnam,2023,2.66,0.86,0.81,0.83
|
317 |
+
Ludhiana,2015,2.30,0.75,0.70,0.71
|
318 |
+
Ludhiana,2016,2.32,0.76,0.71,0.72
|
319 |
+
Ludhiana,2017,2.34,0.77,0.72,0.73
|
320 |
+
Ludhiana,2018,2.36,0.78,0.73,0.74
|
321 |
+
Ludhiana,2019,2.38,0.79,0.74,0.75
|
322 |
+
Ludhiana,2020,2.40,0.80,0.75,0.76
|
323 |
+
Ludhiana,2021,2.42,0.81,0.76,0.77
|
324 |
+
Ludhiana,2022,2.44,0.82,0.77,0.78
|
325 |
+
Ludhiana,2023,2.46,0.83,0.78,0.79
|
326 |
+
Thiruvananthapuram,2015,2.50,0.85,0.81,0.83
|
327 |
+
Thiruvananthapuram,2016,2.52,0.86,0.82,0.84
|
328 |
+
Thiruvananthapuram,2017,2.54,0.87,0.83,0.85
|
329 |
+
Thiruvananthapuram,2018,2.56,0.88,0.84,0.86
|
330 |
+
Thiruvananthapuram,2019,2.58,0.89,0.85,0.87
|
331 |
+
Thiruvananthapuram,2020,2.60,0.90,0.86,0.88
|
332 |
+
Thiruvananthapuram,2021,2.62,0.91,0.87,0.89
|
333 |
+
Thiruvananthapuram,2022,2.64,0.92,0.88,0.90
|
334 |
+
Thiruvananthapuram,2023,2.66,0.93,0.89,0.91
|
requirements.txt
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
dash==3.0.4
|
2 |
+
pandas==2.2.2
|
3 |
+
plotly==6.1.2
|
4 |
+
scikit-learn==1.4.2
|
5 |
+
numpy==1.26.4
|
6 |
+
statsmodels==0.14.2
|
7 |
+
gunicorn==21.2.0
|
8 |
+
gradio==4.44.0
|