Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
2.6 kB
7
Indexable
Never
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()
Leave a Comment