0

I have this server side code in Anvil:

import anvil.files
from anvil.files import data_files
# Server-side code
import anvil.server
import pandas as pd
import io
from anvil import tables

@anvil.server.callable
def clean_and_process_data(file_string, model, capacity, renewed, unlocked, app_tables):
    # Convert the string back to bytes
    file_data = file_string.encode("utf-8")

    # Create a BytesIO object from the file data
    file_object = io.BytesIO(file_data)

    # Read the uploaded CSV file into a DataFrame
    df = pd.read_csv(file_object)

    # Clean the DataFrame
    df[['Date', 'Time']] = df['Time'].str.split(',', n=1, expand=True)
    df = df.drop(columns=['Time', 'Sales Rank', 'List Price'])
    df = df[['Date', 'New Price']]
    df = df.dropna(subset=['New Price'])
    df['Date'] = pd.to_datetime(df['Date'])

    # Convert 'Date' column to DatetimeIndex
    df.set_index('Date', inplace=True)
    df.index = pd.DatetimeIndex(df.index)

    # Resample the data
    monthly_data = df.resample('M').mean()

    # Reset index to convert back to DataFrame
    monthly_data.reset_index(inplace=True)

    # Iterate over the cleaned data and insert rows into the Anvil table
    for row in monthly_data.itertuples(index=False):
        app_tables.Price_Table.add_row(
            date=row[0],
            new_price=row[1],
            model=model,
            capacity=capacity,
            renewed=renewed,
            unlocked=unlocked
        )
        
    # Show a message or perform any other action after uploading the data
    alert("Data uploaded successfully!")

but everytime I try to run the web app, it throws an error:

Exception: Files table not found. Please add one through the Data Files page of the Anvil Editor.

I have tried deleting and creating the same table but no avail.

yamcha
  • 25
  • 5

0 Answers0