Spaces:
Running
Running
Fix: Readme
Browse files- streamlit_app.py +31 -4
streamlit_app.py
CHANGED
|
@@ -152,11 +152,26 @@ if st.session_state.authenticated:
|
|
| 152 |
# Load data
|
| 153 |
state_param = selected_state if selected_state != 'India' else None
|
| 154 |
market_param = selected_market if market_wise else None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 155 |
df = get_filtered_data(collection, state_param, market_param, st.session_state.selected_period)
|
| 156 |
|
| 157 |
if not df.empty:
|
| 158 |
-
# Debug: Show data info
|
| 159 |
-
st.write(f"π
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
|
| 161 |
# Group by date and aggregate
|
| 162 |
df_grouped = df.groupby('Reported Date', as_index=False).agg({
|
|
@@ -164,15 +179,27 @@ if st.session_state.authenticated:
|
|
| 164 |
'Modal Price (Rs./Quintal)': 'mean'
|
| 165 |
})
|
| 166 |
|
| 167 |
-
st.write(f"π
|
| 168 |
-
st.write(f"π° Price range: {df_grouped['Modal Price (Rs./Quintal)'].min():.2f} - {df_grouped['Modal Price (Rs./Quintal)'].max():.2f}")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
|
| 170 |
# Only fill gaps if there are multiple data points
|
| 171 |
if len(df_grouped) > 1:
|
|
|
|
|
|
|
| 172 |
date_range = pd.date_range(start=df_grouped['Reported Date'].min(), end=df_grouped['Reported Date'].max(), freq='D')
|
|
|
|
| 173 |
df_grouped = df_grouped.set_index('Reported Date').reindex(date_range).rename_axis('Reported Date').reset_index()
|
| 174 |
df_grouped['Arrivals (Tonnes)'] = df_grouped['Arrivals (Tonnes)'].ffill().bfill()
|
| 175 |
df_grouped['Modal Price (Rs./Quintal)'] = df_grouped['Modal Price (Rs./Quintal)'].ffill().bfill()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
|
| 177 |
st.subheader(f"π Trends for {selected_state} ({'Market: ' + selected_market if market_wise else 'State'})")
|
| 178 |
|
|
|
|
| 152 |
# Load data
|
| 153 |
state_param = selected_state if selected_state != 'India' else None
|
| 154 |
market_param = selected_market if market_wise else None
|
| 155 |
+
|
| 156 |
+
# Debug: Show query parameters
|
| 157 |
+
st.write(f"π **Debug Info:**")
|
| 158 |
+
st.write(f"- State: {state_param}")
|
| 159 |
+
st.write(f"- Market: {market_param}")
|
| 160 |
+
st.write(f"- Days: {st.session_state.selected_period}")
|
| 161 |
+
st.write(f"- Current time: {datetime.now()}")
|
| 162 |
+
st.write(f"- Query start date: {datetime.now() - timedelta(days=st.session_state.selected_period)}")
|
| 163 |
+
|
| 164 |
df = get_filtered_data(collection, state_param, market_param, st.session_state.selected_period)
|
| 165 |
|
| 166 |
if not df.empty:
|
| 167 |
+
# Debug: Show raw data info
|
| 168 |
+
st.write(f"π **Raw data fetched: {len(df)} rows**")
|
| 169 |
+
st.write(f"- Date range in raw data: {df['Reported Date'].min()} to {df['Reported Date'].max()}")
|
| 170 |
+
st.write(f"- Unique dates in raw data: {df['Reported Date'].nunique()}")
|
| 171 |
+
|
| 172 |
+
# Show first few rows
|
| 173 |
+
with st.expander("View first 10 rows of raw data"):
|
| 174 |
+
st.dataframe(df.head(10))
|
| 175 |
|
| 176 |
# Group by date and aggregate
|
| 177 |
df_grouped = df.groupby('Reported Date', as_index=False).agg({
|
|
|
|
| 179 |
'Modal Price (Rs./Quintal)': 'mean'
|
| 180 |
})
|
| 181 |
|
| 182 |
+
st.write(f"π **After grouping: {len(df_grouped)} unique dates**")
|
| 183 |
+
st.write(f"π° **Price range: {df_grouped['Modal Price (Rs./Quintal)'].min():.2f} - {df_grouped['Modal Price (Rs./Quintal)'].max():.2f}**")
|
| 184 |
+
|
| 185 |
+
# Show grouped data
|
| 186 |
+
with st.expander("View grouped data (first 10 rows)"):
|
| 187 |
+
st.dataframe(df_grouped.head(10))
|
| 188 |
|
| 189 |
# Only fill gaps if there are multiple data points
|
| 190 |
if len(df_grouped) > 1:
|
| 191 |
+
st.write(f"π§ **Filling date gaps...**")
|
| 192 |
+
original_len = len(df_grouped)
|
| 193 |
date_range = pd.date_range(start=df_grouped['Reported Date'].min(), end=df_grouped['Reported Date'].max(), freq='D')
|
| 194 |
+
st.write(f"- Total days in range: {len(date_range)}")
|
| 195 |
df_grouped = df_grouped.set_index('Reported Date').reindex(date_range).rename_axis('Reported Date').reset_index()
|
| 196 |
df_grouped['Arrivals (Tonnes)'] = df_grouped['Arrivals (Tonnes)'].ffill().bfill()
|
| 197 |
df_grouped['Modal Price (Rs./Quintal)'] = df_grouped['Modal Price (Rs./Quintal)'].ffill().bfill()
|
| 198 |
+
st.write(f"- Rows after filling: {len(df_grouped)} (was {original_len})")
|
| 199 |
+
|
| 200 |
+
# Show final data before plotting
|
| 201 |
+
with st.expander("View final plot data (first 20 rows)"):
|
| 202 |
+
st.dataframe(df_grouped.head(20))
|
| 203 |
|
| 204 |
st.subheader(f"π Trends for {selected_state} ({'Market: ' + selected_market if market_wise else 'State'})")
|
| 205 |
|