Untitled
unknown
plain_text
a year ago
2.6 kB
9
Indexable
import pandas as pd # Cargar los archivos CSV y Excel puntuacion_zonas_verdes = pd.read_csv('/mnt/data/Puntuacion_Zonas_Verdes.csv') resultados_menores3 = pd.read_csv('/mnt/data/resultados_menores3.csv') competition_points = pd.read_csv('/mnt/data/competitionpoints.csv') puntos_analisis = pd.read_excel('/mnt/data/puntos_análisis_con_puntuacion_transporte_público.xlsx') average_rent_results_new = pd.read_csv('/mnt/data/average_rent_results_with_scores_decimal.csv') # Función para estandarizar la geometría def standardize_geometry(df): df['geometry'] = df['geometry'].apply(lambda x: f"POINT ({round(float(x.split()[1].strip('()')), 6)} {round(float(x.split()[2].strip('()')), 6)})") return df # Estandarizar la geometría en todos los DataFrames puntos_analisis = standardize_geometry(puntos_analisis) puntuacion_zonas_verdes = standardize_geometry(puntuacion_zonas_verdes) resultados_menores3 = standardize_geometry(resultados_menores3) average_rent_results_new = standardize_geometry(average_rent_results_new) competition_points = standardize_geometry(competition_points) # Unir los DataFrames en la columna 'geometry' merged_df_new = puntos_analisis.merge(puntuacion_zonas_verdes, on='geometry', how='outer') merged_df_new = merged_df_new.merge(resultados_menores3, on='geometry', how='outer') merged_df_new = merged_df_new.merge(average_rent_results_new, on='geometry', how='outer') merged_df_new = merged_df_new.merge(competition_points, on='geometry', how='outer') # Seleccionar y renombrar las columnas merged_df_new = merged_df_new[['geometry', 'score', 'puntuacion_x', 'puntuacion_y', 'competencia_score', 'menores3_score']] merged_df_new = merged_df_new.rename(columns={ 'score': 'score_rent', 'puntuacion_x': 'score_public_transport', 'puntuacion_y': 'score_green_zones', 'competencia_score': 'score_competitors', 'menores3_score': 'score_under_3' }) # Convertir la columna 'score_rent' a float si es necesario if merged_df_new['score_rent'].dtype == 'object': merged_df_new['score_rent'] = pd.to_numeric(merged_df_new['score_rent'], errors='coerce') # Añadir la columna con la suma de los diferentes scores merged_df_new['total_score'] = merged_df_new[['score_rent', 'score_public_transport', 'score_green_zones', 'score_competitors', 'score_under_3']].sum(axis=1) # Mostrar el DataFrame corregido al usuario import ace_tools as tools; tools.display_dataframe_to_user(name="Updated Merged DataFrame with Total Score", dataframe=merged_df_new) # Mostrar una vista previa del DataFrame merged_df_new.head()
Editor is loading...
Leave a Comment