+180 XP

ChatGPT · 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 sie zu bereinigen, zu visualisieren und Ihnen eine aufgeräumte Datei plus einen publikationsreifen Chart zurückzugeben. Das ist Advanced Data Analysis (früher Code Interpreter): eine lebende Python-Umgebung, die an Ihren Chat angehängt ist. Es geht nicht darum, dass das Modell aus Text über Ihre Daten rät. Das Modell führt Code gegen Ihre tatsächliche Datei aus und liest das Ergebnis.

Diese Lektion bringt 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 Verwandte vorinstalliert sind. Es schreibt Code, führt ihn aus, sieht die Fehler oder die 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 Dauer der Session und verfallen nach einer Phase der Inaktivität. Laden Sie alles herunter, was Sie behalten wollen.
  • Es gibt in der Sandbox standardmäßig kein Internet. Sie kann keine beliebigen Pakete per pip install nachladen 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 gezippte Archive. Bei Spreadsheets sind mehrere Sheets zugänglich.

Offizielle Übersicht: **Advanced Data Analysis im OpenAI Help Center**.

Das Beispiel: eine echte, unsaubere Sales-CSV

Stellen Sie sich q3_sales.csv vor, exportiert aus einem CRM. Sie ist realistisch kaputt:

  • Eine Revenue-Spalte wie "$1,240.50" (String, mit Symbolen und Kommas).
  • OrderDate in gemischten Formaten: 2025-07-03 und 07/14/2025.
  • Eine Region-Spalte mit "north", "North " und "NORTH".
  • Doppelte Order-Zeilen und ein paar leere CustomerID-Werte.

Sie müssen das nicht alles vorab beschreiben. Lassen Sie ChatGPT die Datei erst inspizieren.

Schritt 1: Profiling vor der Transformation

Laden Sie die Datei hoch und beginnen Sie mit einem diagnostischen Prompt, nicht mit einem Cleanup-Befehl:

Lade diese CSV. Zeige mir Zeilen- und Spaltenzahl, 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:

python
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. Überspringen Sie ihn, bekommen Sie plausibel aussehenden Code, der Ihre Edge Cases stillschweigend falsch behandelt.

Schritt 2: Bereinigen mit expliziten Regeln

Geben Sie das Cleanup als numerierte Spezifikation. Genauigkeit verhindert hier, dass das Modell „hilfsbereit“ Zeilen wegwirft, die Sie behalten wollten.

Bereinige die Daten nach diesen Regeln und gib nach jedem Schritt aus, wie viele Zeilen sich geändert haben: 1. Entferne $ und Kommas aus Revenue, konvertiere zu float. 2. Parse OrderDate zu datetime, setze nicht parsebare Werte auf NaT und melde, wie viele. 3. Normalisiere Region auf Title Case und entferne Whitespace. 4. Entferne vollständig doppelte Zeilen. 5. Belasse Zeilen mit fehlender CustomerID, füge aber ein boolesches Flag missing_customer hinzu. Speichere das Ergebnis als q3_sales_clean.csv.

Eine erfahrene Datenanalystin würde im Kern das schreiben:

python
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 Meldung („rows: 1014 -> 1000, unparsed dates: 3“) und gibt Ihnen einen Download-Link für q3_sales_clean.csv. Klicken Sie ihn an, um die bereinigte Datei zu speichern. Dieser Link zeigt auf die Sandbox, greifen Sie also zu, bevor die Session verfällt.

Eine Anmerkung zum Vertrauen: lesen Sie den Code

Sie können und sollten die Codeblöcke aufklappen, die ChatGPT ausführt. Wenn 3 Datumswerte auf NaT gesetzt wurden, fragen Sie nach, welche Zeilen. Die Disziplin, auf die es ankommt: 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 sich Zwischenzählungen bei jedem Schritt ausgeben (wie oben gezeigt), damit die Transformation nachvollziehbar bleibt.

Schritt 3: Charts, die Sie wirklich verschicken können

Jetzt der schöne Teil. Fragen Sie nach Analyse und Chart in einem Zug:

Gib mir mit den bereinigten Daten den monatlichen Gesamtumsatz als Liniendiagramm. Achsen beschriften, Titel hinzufügen, y-Achse als Währung formatieren und einen klaren Stil verwenden. Speichere es dann als 300-DPI-PNG zum Download.

Eine saubere Version dessen, was läuft:

python
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 dasselbe DataFrame im Speicher aus, Sie laden also nichts erneut hoch.

Eine echte Einschränkung: matplotlib rendert hier Text mit dem Standard-Font-Set, Emoji und manche nicht-lateinischen Schriften werden also möglicherweise nicht dargestellt. Wenn ein Chart bestimmte Markenfonts braucht, ist das ein Fall für Ihr eigenes Tooling, nicht für die Sandbox.

Pivot-Tabellen und Exporte über mehrere Sheets

Spreadsheet-Arbeit ist eine Stärke. Fragen Sie nach einem Pivot und einem formatierten Excel-Export:

Baue ein Pivot mit Gesamtumsatz nach Region (Zeilen) und Monat (Spalten). Schreibe es in q3_summary.xlsx mit den rohen bereinigten Daten auf einem zweiten Sheet namens „data“.
python
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 Mail.

ChatGPT Advanced Data Analysis Full Tutorial

Watch on YouTube

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 dort ab, wo ChatGPT sie jedes Mal liest. Setzen Sie in einem Project Instruktionen wie: „Wenn ich Sales-Daten hochlade, immer zuerst profilen, nach jeder Transformation Zeilenzahlen 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 einen Custom GPT, damit Kolleginnen und Kollegen konsistente Ergebnisse bekommen, ohne Prompts zu schreiben. Verankern Sie die Profiling-zuerst-Regel und Ihren Haus-Chart-Stil in den Instruktionen. Advanced Data Analysis ist eine Fähigkeit, die Sie für den GPT einschalten. Jetzt lädt ein nicht-technischer Kollege eine CSV hoch und bekommt genau Ihre Analyse-Pipeline.

Scheduled Tasks und der ChatGPT-Agent

Für wiederkehrendes Reporting können Scheduled Tasks einen Chat in einem Rhythmus anstoßen („jeden Montag um 9 Uhr“). Der Haken: Ein Scheduled Task kann nicht in Ihren Laptop greifen, um eine frische Datei zu holen. Kombinieren Sie es mit einem Connector (zu Google Drive, SharePoint usw.), damit die Dateiquelle erreichbar ist, oder nutzen Sie den ChatGPT-Agent, der in seiner eigenen virtuellen Umgebung browsen und arbeiten kann, um Daten zu holen und zu verarbeiten. Wählen Sie das Werkzeug danach, ob die Daten schon im Chat liegen oder erst beschafft werden müssen.

Wissenscheck

1. Was ist der grundlegende Unterschied zwischen Advanced Data Analysis und dem Modell, das Ihre Daten einfach als Text liest?

2. Warum sollten Sie bereinigte Daten oder Charts, die Sie behalten wollen, aus der Session herunterladen?

3. Warum empfiehlt die Lektion, mit einem diagnostischen Prompt (Profiling) zu starten und nicht mit einem direkten Cleanup-Befehl?

MEHRFACHAUSWAHL

4. Wählen Sie ALLE Aussagen, die die von Advanced Data Analysis genutzte Sandbox-Umgebung korrekt beschreiben.

Wählen Sie alle richtigen Antworten aus.

MEHRFACHAUSWAHL

5. Wählen Sie ALLE Datenqualitätsprobleme, die die beispielhafte unsaubere Sales-CSV veranschaulicht.

Wählen Sie alle richtigen Antworten aus.

Wann Sie zur API wechseln sollten

Die Chat-Sandbox ist perfekt für Exploration und Ad-hoc-Reports. Sie ist das falsche Werkzeug für eine Pipeline, die unbeaufsichtigt laufen, eine Datenbank ansprechen 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 gemanagten Container aus und gibt sowohl die Analyse als auch alle erzeugten File-IDs zurück, die Sie programmatisch herunterladen können.

python
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 API-Weg, wenn Sie Scheduling auf eigener Infrastruktur, validierbare strukturierte Outputs oder die Integration in eine bestehende App brauchen. Nutzen Sie den Chat, wenn ein Mensch im Loop ist und Sie visuell iterieren wollen. Beide teilen dieselbe Engine; der Unterschied ist Kontrolle gegen Bequemlichkeit.

Wenn Ihr Output in ein nachgelagertes System passen muss, kombinieren Sie das mit Structured Outputs, damit die Zusammenfassung als schemavalidiertes JSON zurückkommt und nicht als Prosa. Damit wird aus „schöner Analyse“ „Daten, denen ein anderes Programm vertrauen kann“.

Häufige Fallstricke

  • Dem ersten Chart vertrauen. Prüfen Sie immer die Zeilenzahl hinter einem Aggregat. Ein vergessener Filter kann Ihre Summen still halbieren.
  • Dateien durch Verfall verlieren. Laden Sie .csv- und .png-Outputs sofort herunter. Die Sandbox ist kein Speicher.
  • Vage Cleanup-Prompts. „Bereinige das“ lädt zu stillen Zeilenverlusten 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 mit Ihnen hereinkommen, oder Sie nutzen die API mit einem Container, den Sie kontrollieren.
  • Riesige Dateien. Sehr große Uploads können den Speicher erschöpfen. Bei Daten mit mehreren Millionen Zeilen erst samplen, die Logik prototypen und den vollen Job dann über die API laufen lassen.

Wichtigste Erkenntnisse

  • Profiling vor der Transformation. Fragen Sie zuerst nach Shape, dtypes, Nullwerten und Duplikaten, damit das Cleanup auf Fakten basiert und nicht auf Annahmen.
  • Spezifizieren Sie das Cleanup als numerierte Regeln und fordern Sie Vorher/Nachher-Zeilenzahlen bei jedem Schritt, damit die Transformation nachvollziehbar 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 der Workflow mit Profiling zuerst, Währungsformat und 300 DPI sich 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 können.

Häufige Fragen

Was macht Advanced Data Analysis in ChatGPT eigentlich mit einer hochgeladenen Datei?

Es schreibt echten Python-Code, führt ihn in einer temporären Sandbox auf Ihrer Datei aus und zeigt Ihnen die Ergebnisse. Die Umgebung hat pandas, matplotlib und numpy vorinstalliert, und das Modell überarbeitet seinen eigenen Code, wenn Fehler auftreten. Es führt Code auf Ihren tatsächlichen Daten aus und rät nicht anhand von Text. Deshalb kann es Ihnen eine bereinigte CSV oder ein fertig gerendertes Diagramm zurückgeben.

Welche Dateiformate kann ich für die Datenanalyse in ChatGPT hochladen?

CSV, XLSX, JSON, Parquet, Bilder, PDFs und ZIP-Archive funktionieren alle. Bei Excel-Dateien sind mehrere Tabellenblätter zugänglich, Sie können also jedes einzeln profilieren und transformieren. Die praktische Grenze sind sehr große Dateien: Uploads mit mehreren Millionen Zeilen können den Speicher der Sandbox erschöpfen. Arbeiten Sie deshalb zuerst mit einer Stichprobe und lassen Sie den vollständigen Job über die API laufen.

Warum sollte ich einen Datensatz profilieren, bevor ich ChatGPT bitte, ihn zu bereinigen?

Weil ein vages „räum das auf“ dazu führt, dass Zeilen stillschweigend wegfallen und plausibel aussehender Code Ihre Sonderfälle falsch behandelt. Fragen Sie zuerst nach Zeilen- und Spaltenanzahl, dtypes, Nullwerten pro Spalte, doppelten Zeilen und ein paar Beispielzeilen, ohne dass etwas verändert wird. Danach schreiben Sie Bereinigungsregeln auf Basis dessen, was die Datei tatsächlich enthält. Das ist der größte Qualitätshebel im gesamten Workflow.

Bleiben Dateien, die in der ChatGPT-Sandbox erstellt wurden, nach der Sitzung verfügbar?

Nein. Die Sandbox ist flüchtig: Dateien und Variablen existieren nur für die Dauer der Sitzung und verfallen nach einer gewissen Zeit der Inaktivität, und Download-Links verweisen auf diese Sandbox. Speichern Sie jede bereinigte CSV, XLSX oder PNG, sobald sie erscheint. Die Umgebung ist außerdem standardmäßig offline, kann also keine URL abrufen und kein beliebiges Paket per pip install installieren.

Wie bekomme ich aus ChatGPT ein präsentationsfertiges Diagramm statt eines groben Plots?

Legen Sie den Output im Prompt fest: beschriftete Achsen, ein Titel, Währungsformat auf der y-Achse und Speichern als PNG mit 300 DPI. ChatGPT rendert das Diagramm inline mit matplotlib und gibt Ihnen einen Download-Link. Iterieren Sie in normaler Sprache („mach ein Balkendiagramm daraus“, „teile es nach Region in Small Multiples auf“), da jede Anfrage erneut auf demselben DataFrame im Speicher läuft. Eine Einschränkung: matplotlib verwendet hier den Standard-Schriftsatz, Emojis, einige nicht-lateinische Schriften und Markenschriften werden also nicht dargestellt.

Wann sollte ich von der ChatGPT-Sandbox auf das Code-Interpreter-Tool der OpenAI API wechseln?

Wechseln Sie, wenn die Analyse ohne Aufsicht laufen, auf eine Datenbank zugreifen oder ein anderes System beliefern muss. Dieselbe Funktion gibt es 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 gibt Datei-IDs zurück, die Sie programmatisch herunterladen können. Behalten Sie die Chat-Sandbox für die Exploration, bei der ein Mensch visuell iteriert. Kombinieren Sie den API-Weg mit Structured Outputs, erhalten Sie schemavalidiertes JSON statt Fließtext.

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
Vollständiges Action Playbook ansehen →