El análisis de datos de Andalucía de 2024

El análisis de datos de Andalucía de 2024

Ayer he encontrado unos datos de la comunidad Andalucía en España en las páginas web de la Junta Andalucía.

Aquí está el enlace.

Ahí hay los datos grabados en el formato JSON donde se los puede descargar. Con el programa de Python se puede hacer unos diagramas para visualizar los datos de grande dimensiones.

Se usa Python, la versión 3.9 está bastante y las bibliotecas de Python Matplotlib, seaborn se tiene que instalar con la orden pip install matplotlib y pip install seaborn.

Diagrama por la infraestructura sanidad formación y administración en %

El script

import json
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import os

# Pfade definieren
path = '/home/skramer/Spanien/CSV-Dateien/Directorio_de_Establecimientos_y_Empresas_con_actividad_económica_en_Andalucía.json'
output_dir = '/home/skramer/Spanien'
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

provinzen_suche = ['huelva', 'sevilla', 'cádiz', 'córdoba', 'jaén', 'málaga', 'almería', 'granada']

# 1. Daten laden
with open(path, 'r', encoding='utf-8') as f:
    full_data = json.load(f)
    all_records = full_data.get('data', [])

data_list = []
for record in all_records:
    try:
        ort = record[1].get('des', '').strip()
        if ort.lower() in provinzen_suche:
            data_list.append({
                "Provinz": ort,
                "Branche": record[0].get('des', ''),
                "Anzahl": float(record[3].get('val', '0'))
            })
    except: continue

df = pd.DataFrame(data_list)

# 2. Quoten berechnen
totals = df[df['Branche'] == 'TOTAL'].set_index('Provinz')['Anzahl']

# Anteil Gesundheit/Bildung/Verwaltung
health_edu = df[df['Branche'] == 'Administración pública, educación y sanidad'].set_index('Provinz')['Anzahl']
health_quote = (health_edu / totals * 100).reset_index()
health_quote.columns = ['Provinz', 'Sozial_Anteil']

# 3. Visualisierung
plt.figure(figsize=(12, 8))
sns.set_style("white")

# Sortierung nach Sozial-Anteil
health_quote = health_quote.sort_values('Sozial_Anteil', ascending=False)

plot = sns.barplot(x='Sozial_Anteil', y='Provinz', data=health_quote, palette="mako")

plt.title('infraestructura, sanidad, formación y administración en %', fontsize=16, pad=20)
plt.xlabel('Porcentaje de participación en el total de empresas', fontsize=12)
plt.ylabel('provincia', fontsize=12)

# Werte einblenden
for i, v in enumerate(health_quote['Sozial_Anteil']):
    plot.text(v + 0.2, i, f"{v:.1f}%", va='center', fontweight='bold')

plt.tight_layout()
plt.savefig(f'{output_dir}infraestructura_sanidad_formación_y_administración en_%.png', dpi=300)
print(f"Grafik gespeichert unter: {output_dir}Infrastruktur_Dichte_Andalusien.png")
plt.show()
Die Kommentare sind geschlossen.