Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__pycache__/dashboard.cpython-311.pyc
58 changes: 31 additions & 27 deletions dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,24 @@
st.markdown('<style>div.block-container{padding-top:1rem;}</style>',unsafe_allow_html=True)


os.chdir(r"C:\\STUDY\\PROGRAMS\\PYTHON\\DMDW_Project")
df = pd.read_csv("SuperStoreDataSet.csv", encoding="ISO-8859-1")
script_dir = os.path.dirname(__file__)
csv_path = os.path.join(script_dir, "SuperStoreDataSet.csv")
df = pd.read_csv(csv_path, encoding="ISO-8859-1")


col1,col2 = st.columns((2))
df["Order Date"] = pd.to_datetime(df["Order Date"])
order_date_str = df["Order Date"].copy()
df["Order Date"] = pd.to_datetime(order_date_str, errors='coerce')

date_formats = ['%m/%d/%Y', '%m-%d-%Y', '%m/%d/%y', '%m-%d-%y']
for fmt in date_formats:
na_mask = df["Order Date"].isna()
if na_mask.any():
df.loc[na_mask, "Order Date"] = pd.to_datetime(
order_date_str[na_mask],
format=fmt,
errors='coerce'
)

#GETTING THE MIN AND MAX DATE
startDate = pd.to_datetime(df["Order Date"]).min()
Expand All @@ -37,7 +49,7 @@

#CREATE FOR REGION
st.sidebar.header("CHOOSE YOUR FILTER: ")
region = st.sidebar.multiselect("CHOOSE YOU REGION",df["Region"].unique())
region = st.sidebar.multiselect("CHOOSE YOU REGION", df["Region"].unique())

if not region:
df2 = df.copy()
Expand All @@ -46,35 +58,27 @@


#CREATE FOR STATE
state = st.sidebar.multiselect("CHOOSE YOUR STATE" ,df2["State"].unique())
state = st.sidebar.multiselect("CHOOSE YOUR STATE", df2["State"].unique())

if not state:
df3 = df2.copy()
else:
df3=df[df["State"].isin(state)]
df3 = df2[df2["State"].isin(state)]

#CREATE FOR CITY
city = st.sidebar.multiselect("CHOOSE YOUR CITY" ,df2["City"].unique())
city = st.sidebar.multiselect("CHOOSE YOUR CITY", df3["City"].unique())

#FILTER THE DATA BASED ON REGION, STATE AND CITY
filtered_df = df.copy()

if not region and not state and not city:
filtered_df = df
elif not state and not city:
filtereddf = df[df["Region"].isin(region)]

elif not region and not state:
filtered_df = df[df["State"].isin(state)]
elif state and city:
filtered_df = df3[df["State"].isin(state) & df3["City"].isin(city)]
elif region and city:
filtered_df = df3[df["Region"].isin(region) & df3["City"].isin(city)]
elif region & state:
filtered_df = df3[df["Region"].isin(region) & df3["State"].isin(state)]
elif city:
filtered_df = df3[df3["City"].isin(city)]
else:
filtered_df = df3[df3["Region"].isin(region) & df3["State"].isin(state) & df["City"].isin(city)]
if region:
filtered_df = filtered_df[filtered_df["Region"].isin(region)]

if state:
filtered_df = filtered_df[filtered_df["State"].isin(state)]

if city:
filtered_df = filtered_df[filtered_df["City"].isin(city)]

category_df =filtered_df.groupby(by=["Category"],as_index =False )["Sales"].sum()

Expand All @@ -99,9 +103,9 @@

with cl2:
with st.expander("REGION VIEWDATA"):
region = filtered_df.groupby(by = "Region", as_index = False)["Sales"].sum()
st.write(region.style.background_gradient(cmap="Oranges"))
csv = region.to_csv(index = False).encode('utf-8')
region_sales = filtered_df.groupby(by = "Region", as_index = False)["Sales"].sum()
st.write(region_sales.style.background_gradient(cmap="Oranges"))
csv = region_sales.to_csv(index = False).encode('utf-8')
st.download_button("Download Data", data = csv, file_name = "Region.csv", mime = "text/csv",help = 'CLICK HERE TO DOWNLOAD CSV FILE')


Expand Down
3 changes: 3 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
streamlit>=1.20.0
plotly>=5.10.0
pandas>=1.4.0