def calcularValor(usuari, restaurant): conn = iDB.__connectDB__('localhost', 'SIO', 'user', 'user') print(f"USUARIO {usuari}, RESTAURANTE {restaurant}") cursor = conn.cursor() cursor.execute( f"SELECT AvgValorations from SIO.users where User_name='{usuari}'") mitjanaUsuari = cursor.fetchall() # print(f"mitjana= {mitjanaUsuari[0][0]}") cursor.execute( f"SELECT User_name from SIO.users where AvgValorations >= '{mitjanaUsuari[0][0]}'-1 and AvgValorations<='{mitjanaUsuari[0][0]}'+1" ) usuaris_propers = cursor.fetchall() total = 0 total_usuaris = len(usuaris_propers) #print(f"Usuari: {usuari}, restaurant: {restaurant}") #print(f"llargada= {total_usuaris}") for usuari_restaurant in usuaris_propers: # print(f"usuari restaurant={usuari_restaurant}") cursor.execute( f"Select Valoration from SIO.valorations where User_name='{usuari_restaurant[0]}' and Restaurant_name='{restaurant}'" ) valor = cursor.fetchall() try: total += valor[0][0] except IndexError: # print("No hi ha res") total_usuaris -= 1 # print(f"el total=:{total}") conn.close() return total / total_usuaris
import pymysql import csv import pandas as pd import init_DB as iDB import functions as func import graph as gp import matplotlib ## Fitxer princiapl (main) # Ens connectem a la BD SIO com 'user' conn = iDB.__connectDB__('localhost', 'SIO', 'user', 'user') # Insertar en la DB. # Descomentar per insertar iDB.loadCSV('./dataset.csv', conn, 'SIO', 'valorations') # Inicializamos el número de usuariis (iDB.allUser) iDB.__getUsersName__(conn, 'SIO', 'valorations') """ # Vaig ficar això de manera que podem anar testejant la funció si mode == 1 # Si no és 1, hauria de executrar-se lo que sería el main final. modo = int(input('Enter your input:')) print ("Modo " + str(modo)) if (modo == 1): iDB.loadCSV('C:\Pract-SIO/Pract-SIO/dataset.csv', conn, 'SIO', 'users') func.getGraphPeruser(conn, 'SIO', 'users', 'User1', True) else: # funcage of all users funcage = func.getAllfuncage(conn, 'SIO', 'valorations')