Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -17,10 +17,24 @@ if uploaded_file:
|
|
| 17 |
df['YEAR'] = df['INVOICE_DATE'].dt.year
|
| 18 |
df['MONTH'] = df['INVOICE_DATE'].dt.month
|
| 19 |
|
| 20 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
st.sidebar.header("Filter Options")
|
| 22 |
-
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
start_date = st.sidebar.date_input('Start Date:', df['INVOICE_DATE'].min())
|
| 25 |
end_date = st.sidebar.date_input('End Date:', df['INVOICE_DATE'].max())
|
| 26 |
|
|
@@ -29,11 +43,13 @@ if uploaded_file:
|
|
| 29 |
(df['INVOICE_DATE'] >= pd.to_datetime(start_date)) &
|
| 30 |
(df['INVOICE_DATE'] <= pd.to_datetime(end_date))
|
| 31 |
]
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
if customer_query:
|
| 35 |
filtered_df = filtered_df[filtered_df['CUSTOMER_NAME'].str.contains(customer_query, case=False, na=False)]
|
| 36 |
|
|
|
|
|
|
|
|
|
|
| 37 |
# Display Filtered Data
|
| 38 |
st.write(f"Filtered Data: {len(filtered_df)} records found.")
|
| 39 |
st.dataframe(filtered_df)
|
|
|
|
| 17 |
df['YEAR'] = df['INVOICE_DATE'].dt.year
|
| 18 |
df['MONTH'] = df['INVOICE_DATE'].dt.month
|
| 19 |
|
| 20 |
+
# Clean whitespace in 'CUSTOMER_NAME' and 'DESCRIPTION'
|
| 21 |
+
df['CUSTOMER_NAME'] = df['CUSTOMER_NAME'].str.strip()
|
| 22 |
+
df['DESCRIPTION'] = df['DESCRIPTION'].str.strip()
|
| 23 |
+
|
| 24 |
+
# Sidebar Filters
|
| 25 |
st.sidebar.header("Filter Options")
|
| 26 |
+
|
| 27 |
+
# Dropdown for Customer Selection
|
| 28 |
+
customer_list = df['CUSTOMER_NAME'].dropna().unique().tolist()
|
| 29 |
+
customer_list.sort()
|
| 30 |
+
customer_query = st.sidebar.selectbox('Select Customer:', options=["All"] + customer_list)
|
| 31 |
+
|
| 32 |
+
# Dropdown for Product Selection
|
| 33 |
+
product_list = df['DESCRIPTION'].dropna().unique().tolist()
|
| 34 |
+
product_list.sort()
|
| 35 |
+
product_query = st.sidebar.selectbox('Select Product:', options=["All"] + product_list)
|
| 36 |
+
|
| 37 |
+
# Date Range Selection
|
| 38 |
start_date = st.sidebar.date_input('Start Date:', df['INVOICE_DATE'].min())
|
| 39 |
end_date = st.sidebar.date_input('End Date:', df['INVOICE_DATE'].max())
|
| 40 |
|
|
|
|
| 43 |
(df['INVOICE_DATE'] >= pd.to_datetime(start_date)) &
|
| 44 |
(df['INVOICE_DATE'] <= pd.to_datetime(end_date))
|
| 45 |
]
|
| 46 |
+
|
| 47 |
+
if customer_query != "All":
|
|
|
|
| 48 |
filtered_df = filtered_df[filtered_df['CUSTOMER_NAME'].str.contains(customer_query, case=False, na=False)]
|
| 49 |
|
| 50 |
+
if product_query != "All":
|
| 51 |
+
filtered_df = filtered_df[filtered_df['DESCRIPTION'].str.contains(product_query, case=False, na=False)]
|
| 52 |
+
|
| 53 |
# Display Filtered Data
|
| 54 |
st.write(f"Filtered Data: {len(filtered_df)} records found.")
|
| 55 |
st.dataframe(filtered_df)
|