Zero Shot
commit
4d0472f136
|
@ -0,0 +1,6 @@
|
|||
# Python
|
||||
**/Lib
|
||||
**/Scripts
|
||||
**/etc
|
||||
**/pyvenv.cfg
|
||||
**/share
|
|
@ -0,0 +1,16 @@
|
|||
# Mini Hackathon: Data Visualizer & Analyzer
|
||||
Aufgabe: "List Data Visualizer & Analyzer” -> 70 Minuten
|
||||
Nutze LLMs und erstelle eine kleine Webanwendung (zum Beispiel mit Streamlit oder einem anderen
|
||||
Framework deiner Wahl), die eine Liste von numerischen Daten vom Benutzer akzeptiert und folgende
|
||||
Funktionen bereitstellt:
|
||||
1. Statistische Analyse: Zeige grundlegende Statistiken der eingegebenen Daten (Durchschnitt, Median,
|
||||
Standardabweichung, etc.).
|
||||
1. Visualisierung: Erstelle mindestens zwei verschiedene Diagramme, die die Daten visualisieren (z.B.
|
||||
Histogramm, Boxplot, etc.).
|
||||
1. Interaktive Filter: Ermögliche es dem Benutzer, Filter auf die Daten anzuwenden (z.B. Werte über/unter
|
||||
einem bestimmten Schwellenwert anzeigen).
|
||||
1. Dynamische Updates: Die Visualisierungen und Analysen sollten sich dynamisch aktualisieren, wenn
|
||||
der Benutzer die Liste ändert.
|
||||
Bonus (für die besonders Schnellen):
|
||||
• Implementiere eine Funktion, die automatisch Ausreißer in den Daten erkennt und markiert.
|
||||
• Erweitere die Anwendung um die Möglichkeit, Daten aus einer CSV-Datei hochzuladen und zu analysieren.
|
|
@ -0,0 +1,76 @@
|
|||
import streamlit as st
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import plotly.express as px
|
||||
|
||||
st.title("List Data Visualizer & Analyzer")
|
||||
|
||||
# Seitenleiste für die Dateneingabe
|
||||
st.sidebar.header("Dateneingabe")
|
||||
|
||||
datenquelle = st.sidebar.radio("Datenquelle auswählen:", ("Manuelle Eingabe", "CSV-Datei hochladen"))
|
||||
|
||||
if datenquelle == "Manuelle Eingabe":
|
||||
dateneingabe = st.sidebar.text_area("Gib Zahlen ein, getrennt durch Kommas:", value="1,2,3,4,5")
|
||||
try:
|
||||
datenliste = [float(x.strip()) for x in dateneingabe.split(",") if x.strip()]
|
||||
df = pd.DataFrame(datenliste, columns=['Werte'])
|
||||
except ValueError:
|
||||
st.error("Bitte gib eine gültige Liste von Zahlen ein.")
|
||||
st.stop()
|
||||
elif datenquelle == "CSV-Datei hochladen":
|
||||
hochgeladene_datei = st.sidebar.file_uploader("Wähle eine CSV-Datei aus", type="csv")
|
||||
if hochgeladene_datei is not None:
|
||||
df = pd.read_csv(hochgeladene_datei)
|
||||
# Annahme: Die Daten stehen in der ersten Spalte
|
||||
df = df.iloc[:, [0]]
|
||||
df.columns = ['Werte']
|
||||
else:
|
||||
st.warning("Bitte lade eine CSV-Datei hoch.")
|
||||
st.stop()
|
||||
|
||||
# Interaktive Filter
|
||||
st.sidebar.header("Datenfilter")
|
||||
min_wert = float(df['Werte'].min())
|
||||
max_wert = float(df['Werte'].max())
|
||||
filterbereich = st.sidebar.slider('Wertebereich auswählen:', min_wert, max_wert, (min_wert, max_wert))
|
||||
gefilterter_df = df[(df['Werte'] >= filterbereich[0]) & (df['Werte'] <= filterbereich[1])]
|
||||
|
||||
# Statistische Analyse
|
||||
st.header("Statistische Analyse")
|
||||
st.write(f"**Anzahl:** {gefilterter_df['Werte'].count()}")
|
||||
st.write(f"**Mittelwert:** {gefilterter_df['Werte'].mean()}")
|
||||
st.write(f"**Median:** {gefilterter_df['Werte'].median()}")
|
||||
st.write(f"**Standardabweichung:** {gefilterter_df['Werte'].std()}")
|
||||
|
||||
# Ausreißererkennung (mithilfe der 1.5*IQR-Regel)
|
||||
Q1 = gefilterter_df['Werte'].quantile(0.25)
|
||||
Q3 = gefilterter_df['Werte'].quantile(0.75)
|
||||
IQR = Q3 - Q1
|
||||
untere_grenze = Q1 - 1.5 * IQR
|
||||
obere_grenze = Q3 + 1.5 * IQR
|
||||
ausreisser = gefilterter_df[(gefilterter_df['Werte'] < untere_grenze) | (gefilterter_df['Werte'] > obere_grenze)]
|
||||
|
||||
# Visualisierungen
|
||||
st.header("Datenvisualisierungen")
|
||||
|
||||
# Histogramm
|
||||
st.subheader("Histogramm")
|
||||
fig1 = px.histogram(gefilterter_df, x='Werte', nbins=20, title='Histogramm')
|
||||
st.plotly_chart(fig1)
|
||||
|
||||
# Boxplot
|
||||
st.subheader("Boxplot")
|
||||
fig2 = px.box(gefilterter_df, y='Werte', points="all", title='Boxplot mit Ausreißern')
|
||||
st.plotly_chart(fig2)
|
||||
|
||||
# Ausreißer anzeigen
|
||||
if not ausreisser.empty:
|
||||
st.subheader("Erkannte Ausreißer")
|
||||
st.write(ausreisser)
|
||||
else:
|
||||
st.subheader("Keine Ausreißer erkannt")
|
||||
|
||||
# Gefilterte Daten anzeigen
|
||||
st.header("Gefilterte Daten")
|
||||
st.write(gefilterter_df)
|
|
@ -0,0 +1,101 @@
|
|||
x,y
|
||||
0.0,2.5777634568920975
|
||||
0.10101010101010101,2.7797836589122995
|
||||
0.20202020202020202,2.9818038609325015
|
||||
0.30303030303030304,3.1838240629527035
|
||||
0.40404040404040403,3.3858442649729055
|
||||
0.5050505050505051,3.587864466993108
|
||||
0.6060606060606061,3.7898846690133094
|
||||
0.7070707070707071,3.991904871033512
|
||||
0.8080808080808081,4.193925073053713
|
||||
0.9090909090909091,4.395945275073916
|
||||
1.0101010101010102,4.597965477094118
|
||||
1.1111111111111112,4.79998567911432
|
||||
1.2121212121212122,5.002005881134521
|
||||
1.3131313131313131,5.204026083154724
|
||||
1.4141414141414141,5.406046285174926
|
||||
1.5151515151515151,5.608066487195128
|
||||
1.6161616161616161,5.810086689215329
|
||||
1.7171717171717171,6.012106891235532
|
||||
1.8181818181818181,6.214127093255734
|
||||
1.9191919191919191,6.416147295275936
|
||||
2.0202020202020203,6.618167497296138
|
||||
2.121212121212121,6.82018769931634
|
||||
2.2222222222222223,7.022207901336542
|
||||
2.323232323232323,7.224228103356744
|
||||
2.4242424242424243,7.426248305376946
|
||||
2.525252525252525,7.628268507397148
|
||||
2.6262626262626263,7.83028870941735
|
||||
2.727272727272727,8.03230891143755
|
||||
2.8282828282828283,8.234329113457754
|
||||
2.929292929292929,8.436349315477955
|
||||
3.0303030303030303,8.638369517498157
|
||||
3.131313131313131,8.84038971951836
|
||||
3.2323232323232323,9.04240992153856
|
||||
3.3333333333333335,9.244430123558764
|
||||
3.4343434343434343,9.446450325578965
|
||||
3.5353535353535355,9.648470527599168
|
||||
3.6363636363636362,9.85049072961937
|
||||
3.7373737373737375,10.05251093163957
|
||||
3.8383838383838382,10.254531133659773
|
||||
3.9393939393939394,10.456551335679976
|
||||
4.040404040404041,10.658571537700178
|
||||
4.141414141414141,10.860591739720379
|
||||
4.242424242424242,11.062611941740581
|
||||
4.343434343434343,11.264632143760783
|
||||
4.444444444444445,11.466652345780986
|
||||
4.545454545454545,11.668672547801187
|
||||
4.646464646464646,11.870692749821389
|
||||
4.747474747474747,12.072712951841591
|
||||
4.848484848484849,12.274733153861794
|
||||
4.94949494949495,12.476753355881996
|
||||
5.05050505050505,12.678773557902197
|
||||
5.151515151515151,12.8807937599224
|
||||
5.252525252525253,13.082813961942602
|
||||
5.353535353535354,13.284834163962804
|
||||
5.454545454545454,13.486854365983005
|
||||
5.555555555555555,13.688874568003207
|
||||
5.656565656565657,13.89089477002341
|
||||
5.757575757575758,14.092914972043612
|
||||
5.858585858585858,14.294935174063813
|
||||
5.959595959595959,14.496955376084015
|
||||
6.0606060606060606,14.698975578104218
|
||||
6.161616161616162,14.90099578012442
|
||||
6.262626262626262,15.10301598214462
|
||||
6.363636363636363,15.305036184164823
|
||||
6.4646464646464645,15.507056386185026
|
||||
6.565656565656566,15.709076588205228
|
||||
6.666666666666667,15.911096790225432
|
||||
6.767676767676767,16.113116992245633
|
||||
6.8686868686868685,16.315137194265834
|
||||
6.96969696969697,16.517157396286034
|
||||
7.070707070707071,16.71917759830624
|
||||
7.171717171717171,16.92119780032644
|
||||
7.2727272727272725,17.123218002346643
|
||||
7.373737373737374,17.325238204366844
|
||||
7.474747474747475,17.527258406387045
|
||||
7.575757575757575,17.729278608407245
|
||||
7.6767676767676765,17.93129881042745
|
||||
7.777777777777778,18.133319012447654
|
||||
7.878787878787879,18.335339214467854
|
||||
7.979797979797979,18.537359416488055
|
||||
8.080808080808081,18.73937961850826
|
||||
8.181818181818182,18.94139982052846
|
||||
8.282828282828282,19.14342002254866
|
||||
8.383838383838384,19.345440224568865
|
||||
8.484848484848484,19.547460426589065
|
||||
8.585858585858587,19.74948062860927
|
||||
8.686868686868687,19.95150083062947
|
||||
8.787878787878787,20.15352103264967
|
||||
8.88888888888889,20.355541234669875
|
||||
8.98989898989899,20.557561436690076
|
||||
9.09090909090909,20.759581638710277
|
||||
9.191919191919192,20.96160184073048
|
||||
9.292929292929292,21.16362204275068
|
||||
9.393939393939394,21.365642244770886
|
||||
9.494949494949495,21.567662446791086
|
||||
9.595959595959595,21.769682648811287
|
||||
9.696969696969697,21.97170285083149
|
||||
9.797979797979798,22.17372305285169
|
||||
9.8989898989899,22.375743254871896
|
||||
10.0,22.577763456892097
|
|
Loading…
Reference in New Issue