HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/af/src/components/data_loader.py
import streamlit as st
import pandas as pd
import os
from dotenv import load_dotenv

def load_local_data():
    """
    Lädt die lokalen Daten aus dem konfigurierten Verzeichnis.
    
    Returns:
        dict: Ein Dictionary mit den geladenen Datenframes
    """
    load_dotenv()
    
    data_dir = os.getenv('DATA_DIR', 'data')
    
    # Erstelle das Verzeichnis, falls es nicht existiert
    os.makedirs(data_dir, exist_ok=True)
    
    # Prüfe, ob das Verzeichnis leer ist
    if not os.listdir(data_dir):
        st.warning(f"Das Verzeichnis {data_dir} ist leer. Bitte laden Sie zuerst die Daten vom SFTP-Server herunter.")
        return None
    
    # Lade alle CSV-Dateien aus dem Verzeichnis
    dataframes = {}
    
    for file in os.listdir(data_dir):
        if file.endswith('.csv'):
            file_path = os.path.join(data_dir, file)
            try:
                df = pd.read_csv(file_path)
                dataframes[file] = df
                st.success(f"Datei {file} erfolgreich geladen: {len(df)} Zeilen, {len(df.columns)} Spalten")
            except Exception as e:
                st.error(f"Fehler beim Laden der Datei {file}: {str(e)}")
    
    return dataframes

def render_data_loader():
    """
    Rendert die Streamlit-Komponente zum Laden der lokalen Daten.
    """
    st.header("Daten-Loader")
    
    # Lade die lokalen Daten
    dataframes = load_local_data()
    
    if dataframes:
        # Zeige eine Übersicht der geladenen Daten
        st.subheader("Geladene Daten")
        
        for filename, df in dataframes.items():
            with st.expander(f"{filename} ({len(df)} Zeilen, {len(df.columns)} Spalten)"):
                st.dataframe(df.head())
                
                # Zeige Statistiken an
                st.subheader("Statistiken")
                st.write(f"Anzahl der Zeilen: {len(df)}")
                st.write(f"Anzahl der Spalten: {len(df.columns)}")
                
                # Zeige Spalteninformationen an
                st.subheader("Spalteninformationen")
                st.write(df.dtypes)
                
                # Zeige Zusammenfassung an
                st.subheader("Zusammenfassung")
                st.write(df.describe())