I sorted out how to choose by year as i missed one option.
But now i realised all of this could be done using date picker in streamlit as im having a hard time to converting month, day, week tu datetime.
df = df[df['PMarket'].isin(market_list)] df = df[df['PYear']==market_date]df = df[df['PYear']==market_date] <--- this one allows me to choose year from select list.
df_mc.columns = ['PMarket', 'PDate', 'Count']df_mc.columns = ['PMarket', 'Count'] <--- to show on my chart.
But now i realised all of this could be done using date picker in streamlit as im having a hard time to converting month, day, week tu datetime.
with features: market_options = df['PMarket'].unique().tolist() min_date = pd.to_datetime(df['PuDate'], errors='coerce') # PDate renamed to PuDate [ purchase date ] max_date = pd.to_datetime(df['PuDate'], errors='coerce') value=(min(df['PuDate']), max(df['PuDate'])), market_date = st.date_input( "Date picker", min_value=min(df['PuDate']), max_value=max(df['PuDate']), value=(min(df['PuDate']), max(df['PuDate'])), format="YYYY/MM/DD" ) market_list = st.multiselect('Choose market area', market_options, ['Atlanta']) df = df[df['PMarket'].isin(market_list)] df = df[df['PuDate']==market_date] df_mc = df.groupby(df['PMarket'])['PuDate'].count().reset_index() df_mc.columns = ['PMarket', 'Count'] fig1 = px.bar(df_mc, x="PMarket", y="Count", color='PMarket', range_y=[0,30], text_auto=True) fig1.update_layout(width=1000) st.write(fig1)But im getting an error.
Error:ValueError: Lengths must match
Traceback:
File "/home/evo/koala/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script
exec(code, module.__dict__)
File "/home/evo/koala/koala.py", line 183, in <module>
df = df[df['PuDate']==market_date]
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/ops/common.py", line 81, in new_method
return method(self, other)
^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/arraylike.py", line 40, in __eq__
return self._cmp_method(other, operator.eq)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/series.py", line 6096, in _cmp_method
res_values = ops.comparison_op(lvalues, rvalues, op)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/ops/array_ops.py", line 279, in comparison_op
res_values = op(lvalues, rvalues)
^^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/ops/common.py", line 81, in new_method
return method(self, other)
^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/arraylike.py", line 40, in __eq__
return self._cmp_method(other, operator.eq)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/arrays/datetimelike.py", line 935, in _cmp_method
other = self._validate_comparison_value(other)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/evo/koala/lib/python3.11/site-packages/pandas/core/arrays/datetimelike.py", line 574, in _validate_comparison_value
raise ValueError("Lengths must match")
Im trying to imply my previous code.