import pandas as pd import numpy as np # Simulate loading data print("Loading data...") df = pd.read_csv(r"D:\01A-TRABAJO\PYTHON\DATASCIENCE\EJERCICIOS\final_project_space\Final_Project\df_clean.csv") nombres_proveedores = pd.read_csv(r"D:\01A-TRABAJO\PYTHON\DATASCIENCE\EJERCICIOS\final_project_space\Final_Project\nombres_proveedores.csv", sep=';') euros_proveedor = pd.read_csv(r"D:\01A-TRABAJO\PYTHON\DATASCIENCE\EJERCICIOS\final_project_space\Final_Project\euros_proveedor.csv", sep=',') print("\nInitial data types:") print(df.dtypes) print(nombres_proveedores.dtypes) print(euros_proveedor.dtypes) # Convert columns to string df['CLIENTE'] = df['CLIENTE'].astype(str) nombres_proveedores['codigo'] = nombres_proveedores['codigo'].astype(str) euros_proveedor['CLIENTE'] = euros_proveedor['CLIENTE'].astype(str) print("\nData types after conversion:") print(df.dtypes) print(nombres_proveedores.dtypes) print(euros_proveedor.dtypes) # Convert numerical columns in euros_proveedor for col in euros_proveedor.columns: if col != 'CLIENTE': euros_proveedor[col] = pd.to_numeric(euros_proveedor[col], errors='coerce') print("\nData types in euros_proveedor after numeric conversion:") print(euros_proveedor.dtypes) # Simulate customer selection customer_code = df['CLIENTE'].iloc[0] # Take the first customer as an example print(f"\nAnalysis for customer: {customer_code}") customer_data = df[df["CLIENTE"] == str(customer_code)] customer_euros = euros_proveedor[euros_proveedor["CLIENTE"] == str(customer_code)] print("\nCustomer data:") print(customer_data) print("\nCustomer euro data:") print(customer_euros) # Obtain percentage of units sold by manufacturer all_manufacturers = customer_data.iloc[:, 1:].T all_manufacturers.index = all_manufacturers.index.astype(str) print("\nAll manufacturers:") print(all_manufacturers) print(all_manufacturers.dtypes) # Get total sales by manufacturer sales_data = customer_euros.iloc[:, 1:].T sales_data.index = sales_data.index.astype(str) print("\nSales data:") print(sales_data) print(sales_data.dtypes) # Remove the 'CLIENTE' row before attempting to sort sales data sales_data_filtered = sales_data.drop(index='CLIENTE') # Ensure all values are numeric sales_data_filtered = sales_data_filtered.apply(pd.to_numeric, errors='coerce') # Attempt to sort the sales data after filtering try: print("\nAttempting to sort the sales data...") top_sales = sales_data_filtered.sort_values(by=sales_data_filtered.columns[0], ascending=False).head(10) print("Sorting successful:") print(top_sales) except Exception as e: print(f"Error sorting: {str(e)}") print("Values in the first column:") print(sales_data_filtered[sales_data_filtered.columns[0]]) print("Data types in the first column:") print(sales_data_filtered[sales_data_filtered.columns[0]].apply(type)) print("\nDebugging script completed.")