Advanced data analysis: Dateien, Charts und Spreadsheets
# Advanced data analysis: Dateien, Charts und Spreadsheets
Laden Sie eine unsaubere Sales-CSV hoch, und ChatGPT schreibt und führt echtes Python in einer Sandbox aus, um die Daten zu bereinigen, zu visualisieren und Ihnen eine aufbereitete Datei plus eine publikationsreife Grafik zurückzugeben. Das ist Advanced Data Analysis (früher Code Interpreter): eine live Python-Umgebung, die an Ihren Chat angehängt ist. Das Modell rät nicht anhand von Text über Ihre Daten. Es führt Code gegen Ihre tatsächliche Datei aus und liest das Ergebnis.
Diese Lektion nimmt eine Datei von roh bis fertig und zeigt Ihnen genau, wie Sie die bereinigten Daten und Charts wieder herausholen.
Was Advanced Data Analysis tatsächlich ist
Wenn Sie eine Datei anhängen, kann ChatGPT eine temporäre Linux-Sandbox starten, in der Python, pandas, matplotlib, numpy und Co. vorinstalliert sind. Es schreibt Code, führt ihn aus, sieht die Fehler oder Ergebnisse und iteriert, ohne dass Sie ein Terminal anfassen.
Wichtige Eigenschaften, die Sie im Kopf behalten sollten:
- Die Sandbox ist ephemer. Dateien und Variablen leben für die Session und verfallen nach einer Phase der Inaktivität. Laden Sie alles herunter, was Sie behalten wollen.
- Es gibt standardmäßig kein Internet in der Sandbox. Sie kann keine beliebigen Pakete per
pip installnachladen oder APIs aufrufen. Sie arbeitet mit dem, was mitgeliefert ist, und mit dem, was Sie hochladen. - Sie verarbeitet
.csv,.xlsx,.json,.parquet, Bilder, PDFs und ZIP-Archive. Bei Spreadsheets sind mehrere Sheets zugänglich.
Offizielle Übersicht: Advanced Data Analysis in the OpenAI Help Center.
Das Beispiel: eine echte, unsaubere Sales-CSV
Stellen Sie sich q3_sales.csv vor, exportiert aus einem CRMCRMCustomer Relationship Management: software and strategy to manage and analyse customer interactions throughout their lifecycle.Vollständige Definition ansehen →. Sie ist realistisch kaputt:
- Eine
Revenue-Spalte wie"$1,240.50"(String, mit Symbolen und Kommas). OrderDatein gemischten Formaten:2025-07-03und07/14/2025.- Eine
Region-Spalte mit"north","North "und"NORTH". - Doppelte Order-Zeilen und einige leere
CustomerID-Werte.
Sie müssen das nicht alles vorab beschreiben. Lassen Sie ChatGPT zuerst hineinsehen.
Schritt 1: Profilieren, bevor Sie transformieren
Laden Sie die Datei hoch und beginnen Sie mit einem diagnostischen Prompt, nicht mit einem Cleanup-Befehl:
> Lade diese CSV. Zeige mir Zeilen- und Spaltenanzahl, dtypes, die Anzahl der Nullwerte pro Spalte, die Anzahl doppelter Zeilen und 5 Beispielzeilen. Ändere noch nichts.
ChatGPT führt etwas in dieser Art aus und berichtet zurück:
import pandas as pd
df = pd.read_csv("q3_sales.csv")
print(df.shape)
print(df.dtypes)
print(df.isna().sum())
print("duplicate rows:", df.duplicated().sum())
df.sample(5, random_state=0)Jetzt argumentieren Sie auf Basis von Fakten. Sie sehen, dass Revenue ein object (Text) ist, dass CustomerID 6 Nullwerte hat und dass es 14 doppelte Zeilen gibt. Dieser Profiling-Schritt ist der größte einzelne Qualitätshebel. Lassen Sie ihn weg, und Sie bekommen plausibel aussehenden Code, der Ihre Edge Cases stillschweigend falsch behandelt.
Schritt 2: Mit expliziten Regeln bereinigen
Geben Sie das Cleanup als nummerierte Spezifikation vor. Genauigkeit verhindert hier, dass das Modell „hilfsbereit“ Zeilen wegwirft, die Sie behalten wollten.
> Bereinige die Daten mit diesen Regeln und gib nach jedem Schritt aus, wie viele Zeilen sich verändert haben:
> 1. Entferne $ und Kommas aus Revenue, konvertiere zu float.
> 2. Parse OrderDate zu datetime, setze nicht parsbare Werte auf NaT und melde, wie viele.
> 3. Normalisiere Region auf Title Case und entferne Leerzeichen.
> 4. Entferne vollständig doppelte Zeilen.
> 5. Lasse Zeilen mit fehlender CustomerID stehen, füge aber ein boolesches Flag missing_customer hinzu.
> Speichere das Ergebnis als q3_sales_clean.csv.
Ein erfahrener Data Analyst würde im Wesentlichen das schreiben:
import pandas as pd
df = pd.read_csv("q3_sales.csv")
before = len(df)
df["Revenue"] = (df["Revenue"].str.replace(r"[$,]", "", regex=True).astype(float))
df["OrderDate"] = pd.to_datetime(df["OrderDate"], format="mixed", errors="coerce")
unparsed = df["OrderDate"].isna().sum()
df["Region"] = df["Region"].str.strip().str.title()
df = df.drop_duplicates()
df["missing_customer"] = df["CustomerID"].isna()
df.to_csv("q3_sales_clean.csv", index=False)
print(f"rows: {before} -> {len(df)}, unparsed dates: {unparsed}")ChatGPT zeigt Ihnen die ausgegebene Ausgabe („rows: 1014 -> 1000, unparsed dates: 3“) und gibt Ihnen einen Download-Link für q3_sales_clean.csv. Klicken Sie darauf, um die bereinigte Datei zu speichern. Dieser Link zeigt auf die Sandbox, holen Sie sich die Datei also, bevor die Session verfällt.
Eine Anmerkung zum Vertrauen: lesen Sie den Code
Sie kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen und sollten die Codeblöcke aufklappen, die ChatGPT ausführt. Wenn es 3 Datumswerte auf NaT gesetzt hat, fragen Sie, welche Zeilen. Die Disziplin, die zählt: behandeln Sie das Modell wie einen schnellen Junior-Analysten, dessen Arbeit Sie stichprobenartig prüfen, nicht wie ein Orakel. Wenn Zahlen in eine Entscheidung einfließen, lassen Sie bei jedem Schritt Zwischenzählungen ausgeben (wie oben), damit die Transformation prüfbar ist.
Schritt 3: Charts, die Sie wirklich verwenden kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen
Jetzt der spaßige Teil. Fordern Sie Analyse und Chart in einem Zug an:
> Gib mir aus den bereinigten Daten den monatlichen Gesamtumsatz als Liniendiagramm. Beschrifte die Achsen, füge einen Titel hinzu, formatiere die y-Achse als Währung und nutze einen aufgeräumten Stil. Speichere es dann als 300-DPI-PNG, das ich herunterladen kann.
Eine aufgeräumte Version dessen, was läuft:
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
monthly = (df.set_index("OrderDate").resample("ME")["Revenue"].sum())
fig, ax = plt.subplots(figsize=(9, 5))
ax.plot(monthly.index, monthly.values, marker="o", linewidth=2)
ax.set_title("Q3 2025 Monthly Revenue")
ax.set_xlabel("Month")
ax.set_ylabel("Revenue")
ax.yaxis.set_major_formatter(mticker.FuncFormatter(lambda x, _: f"${x:,.0f}"))
fig.tight_layout()
fig.savefig("monthly_revenue.png", dpi=300)Sie bekommen den gerenderten Chart inline plus ein herunterladbares monthly_revenue.png. Iterieren Sie in normaler Sprache: „mach ein Balkendiagramm daraus“, „füge Datenlabels an jedem Punkt hinzu“, „splitte nach Region in Small Multiples“. Jede Anfrage führt den Code erneut gegen denselben DataFrame im Speicher aus, Sie laden also nichts erneut hoch.
Eine echte Einschränkung: matplotlib rendert hier Text mit dem Standard-Fontset, Emoji und manche nicht-lateinischen Schriften werden daher möglicherweise nicht angezeigt. Wenn ein Chart bestimmte Marken-Fonts braucht, ist das eine Aufgabe für Ihr eigenes Tooling, nicht für die Sandbox.
Pivot-Tabellen und Exporte über mehrere Sheets
Spreadsheet-Arbeit ist eine Stärke. Fordern Sie ein Pivot und einen formatierten Excel-Export an:
> Baue ein Pivot des Gesamtumsatzes nach Region (Zeilen) und Monat (Spalten). Schreibe es in q3_summary.xlsx mit den rohen bereinigten Daten auf einem zweiten Sheet namens „data“.
pivot = pd.pivot_table(df, values="Revenue", index="Region",
columns=df["OrderDate"].dt.strftime("%Y-%m"),
aggfunc="sum", fill_value=0)
with pd.ExcelWriter("q3_summary.xlsx") as writer:
pivot.to_excel(writer, sheet_name="summary")
df.to_excel(writer, sheet_name="data", index=False)Das Ergebnis ist eine echte .xlsx mit zwei Sheets, bereit für ein Deck oder eine E-Mail.
ChatGPT Advanced Data Analysis Full Tutorial
Das Ganze wiederholbar machen
Eine einmalige Analyse ist schön. Der Hebel entsteht durch Wiederverwendung.
Custom Instructions und Projects
Wenn Sie das wöchentlich machen, sollten Ihre Standards nicht in Ihrem Kopf leben. Legen Sie sie dorthin, wo ChatGPT sie jedes Mal liest. Setzen Sie in einem Project Instruktionen wie: „Wenn ich Sales-Daten hochlade, immer erst profilieren, nach jedem Transform immer Zeilenanzahlen ausgeben, Währung auf Charts formatieren und Charts mit 300 DPI exportieren.“ Dateien, die Sie einem Project hinzufügen, gelten nur dort, Ihre Sales-Arbeit bleibt also von allem anderen getrennt.
Ein Custom GPT für Ihr Team
Packen Sie den gesamten Workflow in ein Custom GPT, damit Kollegen konsistente Ergebnisse bekommen, ohne Prompts zu schreiben. Verankern Sie die Profiling-zuerst-Regel und Ihren Haus-Chartstil in seinen Instruktionen. Advanced Data Analysis ist eine Fähigkeit, die Sie für das GPT aktivieren. Jetzt lädt ein nicht-technischer Kollege eine CSV hoch und bekommt exakt Ihre Analyse-PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen →.
Scheduled tasks und der ChatGPT Agent
Für wiederkehrendes Reporting kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen scheduled tasks einen Chat in einem Rhythmus anstoßen („jeden Montag um 9 Uhr“). Der Haken: ein scheduled task kann nicht auf Ihren Laptop zugreifen, um eine frische Datei zu holen. Kombinieren Sie ihn mit einem Connector (zu Google Drive, SharePoint usw.), damit die Datenquelle erreichbar ist, oder nutzen Sie den ChatGPT Agent, der browsen und in seiner eigenen virtuellen Umgebung arbeiten kann, um Daten zu holen und zu verarbeiten. Wählen Sie das Werkzeug danach, ob die Daten bereits im Chat liegen oder erst geholt werden müssen.
Wissenscheck
1. Was ist der grundlegende Unterschied zwischen Advanced Data Analysis und dem Modell, das Ihre Daten einfach aus Text liest?
2. Warum sollten Sie bereinigte Daten oder Charts, die Sie behalten wollen, aus einer Session herunterladen?
3. Warum empfiehlt die Lektion, mit einem diagnostischen Prompt (Profiling) zu starten statt mit einem sofortigen Cleanup-Befehl?
4. Wählen Sie ALLE Aussagen, die die von Advanced Data Analysis genutzte Sandbox-Umgebung korrekt beschreiben.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE Datenqualitätsprobleme, die die Beispiel-Sales-CSV veranschaulicht.
Wählen Sie alle richtigen Antworten aus.
Wann Sie zur APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen → wechseln sollten
Die Chat-Sandbox ist perfekt für Exploration und Ad-hoc-Reports. Sie ist das falsche Werkzeug für eine PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen →, die unbeaufsichtigt laufen, auf eine Datenbank zugreifen und niemals einen Spaltennamen halluzinieren darf. Dafür wechseln Sie zur OpenAI API.
Dieselbe Fähigkeit „Modell schreibt und führt Python aus“ existiert als Code Interpreter Tool in der Responses API. Sie hängen eine Datei an, aktivieren das Tool, und das Modell führt Code in einem verwalteten Container aus und liefert sowohl die Analyse als auch die IDs erzeugter Dateien zurück, die Sie programmatisch herunterladen kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen.
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-5",
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
input="Clean the attached sales CSV, then return total revenue by region as a table.",
)
print(resp.output_text)Nutzen Sie den APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →-Weg, wenn Sie Scheduling auf Ihrer eigenen Infrastruktur brauchen, strukturierte Outputs, die Sie validieren kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen, oder die Integration in eine bestehende App. Nutzen Sie den Chat, wenn ein Mensch im Loop ist und Sie visuell iterieren wollen. Beide teilen dieselbe Engine; der Unterschied ist Kontrolle versus Bequemlichkeit.
Wenn Ihr Output in ein nachgelagertes System passen muss, kombinieren Sie das mit structured outputs, damit die Zusammenfassung als schemaschemaA schema is the formal blueprint that defines how data is structured, named, typed, and related within a database, file, or message.Vollständige Definition ansehen →-validiertes JSON und nicht als Prosa zurückkommt. Damit wird aus „schöner Analyse“ etwas, dem ein anderes Programm vertrauen kann.
Häufige Fallstricke
- Dem ersten Chart vertrauen. Bestätigen Sie immer die Zeilenanzahl hinter einem Aggregat. Ein vergessener Filter kann Ihre Summen stillschweigend halbieren.
- Dateien durch Ablauf verlieren. Laden Sie
.csv- und.png-Outputs sofort herunter. Die Sandbox ist kein Speicher. - Vage Cleanup-Prompts. „Räum das auf“ lädt zu stillem Löschen von Zeilen ein. Geben Sie jede Regel an und fordern Sie Vorher/Nachher-Zählungen.
- Internetzugang annehmen. Die Sandbox kann keine URL abrufen und kein exotisches Paket installieren. Wenn Sie eine externe Library brauchen, müssen die Daten mitkommen, oder nutzen Sie die APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen → mit einem Container, den Sie kontrollieren.
- Riesige Dateien. Sehr große Uploads kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen den Speicher erschöpfen. Bei Daten mit mehreren Millionen Zeilen erst samplen, die Logik prototypen und den vollen Job dann über die APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen → laufen lassen.
Wichtigste Erkenntnisse
- Profilieren, bevor Sie transformieren. Fragen Sie zuerst nach shape, dtypes, Nullwerten und Duplikaten, damit das Cleanup auf Fakten und nicht auf Annahmen beruht.
- Spezifizieren Sie das Cleanup als numerierte Regeln und fordern Sie Vorher/Nachher-Zeilenanzahlen bei jedem Schritt, damit die Transformation prüfbar bleibt.
- Laden Sie bereinigte Dateien und Charts sofort herunter: die Sandbox ist ephemer und offline, ohne persistenten Speicher.
- Verankern Sie Ihre Standards in einem Project oder Custom GPT, damit sich der Workflow aus Profiling zuerst, Währungsformatierung und 300 DPI ohne erneutes Prompten wiederholt.
- Wechseln Sie zum Code Interpreter Tool der Responses API, wenn Sie unbeaufsichtigte Läufe, Datenbankzugriff oder strukturiertes JSON brauchen, dem Ihre anderen Systeme vertrauen kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen.
Was Sie aus dieser Lektion umsetzen
Diese Maßnahmen sind im Playbook der Rolle zusammengefasst.
- Datenstruktur, Nullwerte und Duplikate vor dem Transformieren profilieren und Zeilenzahlen vor/nach einfordern
- Sandbox-Dateien und Charts direkt nach jedem Analyselauf herunterladen