Graph doesn't display according to designated dates.
Tried to create a automated plotly line graph to convert csv files to PNG format
import pandas as pd
import plotly.express as px
def present_line(csv_file, date_columns=['06/02/2024', '06/09/2024', '06/16/2024', '06/23/2024', '06/30/2024']):
# Read CSV file
df = pd.read_csv(csv_file)
# Check if all specific date columns exist in the dataframe
if not all(date in df.columns for date in date_columns):
# Find which columns are missing
missing_dates = [date for date in date_columns if date not in df.columns]
raise ValueError(f"Missing date columns in the CSV file: {', '.join(missing_dates)}")
# Convert the specific date columns to datetime format
for date in date_columns:
df[date] = pd.to_datetime(df[date], format='%m/%d/%Y', errors='coerce')
# Drop rows with invalid dates
df = df.dropna(subset=date_columns)
# Melt the dataframe to have a 'Date' and 'Attendance' column
df_melted = df.melt(id_vars=[], value_vars=date_columns, var_name='Date', value_name='Attendance')
# Ensure the 'Attendance' column contains numerical data
df_melted['Attendance'] = pd.to_numeric(df_melted['Attendance'], errors='coerce')
df_melted = df_melted.dropna(subset=['Attendance'])
# Sort the data by date
df_melted = df_melted.sort_values(by='Date')
# Create the line chart
fig = px.line(df_melted, x='Date', y='Attendance', title='Attendance Over Time')
# Display the plot
fig.show()
Any help would be much appreciated.