KI für EinsteigerAnleitung
Fragen Sie ein LLM zu einer CSV: Senden Sie das Schema, nicht die Tabelle
Senden Sie Spaltennamen, Typen und 3 Beispielzeilen, erhalten Sie eine pandas-Zeile zurück, führen Sie sie auf der vollständigen Datei aus. Günstiger als Zeilen einzufügen, und Sie können die Zahl prüfen.

Auf dieser Seite
Sie haben ein sales.csv mit 5.000 Zeilen und eine Frage: Welches Produkt hat im Oktober am meisten verkauft? Fügen Sie die Datei nicht in einen Chat ein. Senden Sie dem Modell die Spaltennamen, ihre Typen und drei Beispielzeilen, bitten Sie um eine Zeile pandas und führen Sie diese Zeile selbst auf der vollständigen Datei aus. Das Modell liest Ihre 5.000 Zeilen nie, der Prompt bleibt winzig, und die Zahl, die Sie erhalten, stammt aus Code, den Sie erneut ausführen können.
Hier erfahren Sie, warum das besser funktioniert, wie der Prompt aussieht, ein Skript zum Kopieren und was es im Vergleich zum Alles-Einfügen kostet.
Warum das Einfügen der ganzen Tabelle schiefgeht#
Hier ist eine Geschichte, die Ihnen bekannt vorkommen dürfte. Jemand fügt 200 Zeilen Ausgaben in einen Chat ein und fragt nach der Summe. Die Antwort kommt selbstsicher zurück, mit Cent und allem. Sie ist auch falsch, und nichts auf dem Bildschirm verrät es Ihnen.
Das Modell sagt Text Stück für Stück voraus (diese Stücke sind Tokens). Eine Summe von 200 Zahlen sind 200 kleine Schritte ohne Taschenrechner im Inneren, und eine verrutschte Ziffer sieht genauso aus wie eine korrekte Antwort. Code verhält sich anders: df['amount']. addiert alle Zeilen, jedes Mal, und liefert beim zweiten Lauf dasselbe Ergebnis.
Es gibt ein zweites Problem, und es betrifft die Größe. Eine Tabelle frisst das Kontextfenster schnell auf, und Sie zahlen für jede Zeile bei jeder Frage. Zehn Fragen zur selben Datei bedeuten zehn Kopien der ganzen Tabelle als Eingabe.
Kurzer Check
Warum ist eine pandas-Zeile sicherer, als das Modell nach der Summe zu fragen?
Antwort anzeigen
Antwort: Ihr Computer führt den Code auf jeder Zeile aus, und Sie können ihn erneut ausführen und prüfen
Das Modell kann trotzdem eine falsche Zeile schreiben. Der Unterschied ist, dass eine Zeile sichtbar und wiederholbar ist: Sie lesen sie, führen sie aus und vergleichen das Ergebnis mit ein paar Zeilen von Hand.
Senden Sie die Form der Tabelle, nicht die Tabelle#
Das Modell braucht Ihre Daten nicht, um den Code zu schreiben. Es muss wissen, wie die Tabelle aussieht: welche Spalten existieren, welche Art von Werten sie enthalten und wie eine Zeile geschrieben wird. Das ist das Schema plus ein paar Zeilen.
Sagen wir, Ihr sales.csv hat vier Spalten. Das ist der ganze Prompt:
A pandas DataFrame named df has these columns and types:
date object
product object
units int64
price float64
First 3 rows (CSV):
date,product,units,price
2026-10-01,Oat latte mix,12,4.50
2026-10-01,Cocoa,7,3.20
2026-10-02,Oat latte mix,9,4.50
Question: Which product sold the most units in October 2026?
Reply with ONE line of pandas code that computes the answer from df.
No explanation, no markdown, no imports.Erwarten Sie eine Antwort in der Form df[df['date'].. Der genaue Wortlaut variiert von Lauf zu Lauf, also lesen Sie die Zeile, bevor Sie sie ausführen.
Warum drei Zeilen und nicht nur die Spaltennamen? Wegen des Datums. Die Typ-Spalte sagt object, was nur Text bedeutet. Die Beispielzeilen zeigen, dass das Datum als 2026-10-01 geschrieben wird, sodass das Modell weiß, dass es auf den Text 2026-10 abgleichen muss, nicht auf 10/2026 oder einen Monatsnamen. Die meisten falschen pandas-Zeilen entstehen durch das Raten eines Formats, das die Tabelle nie hatte.

Das Skript: fragen, die Zeile lesen, ausführen#
Das folgende Skript baut diesen Prompt aus Ihrer Datei, sodass Sie das Schema nicht von Hand tippen müssen. Es ruft die CheapTokens-API über das OpenAI Python SDK auf: Basis-URL https:/, Modell-ID deepseek-. Bewahren Sie den Schlüssel in einer Umgebungsvariable auf, nicht in der Datei.
import os
import pandas as pd
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
df = pd.read_csv("sales.csv") # for .xlsx: pd.read_excel("sales.xlsx")
schema = df.dtypes.to_string()
sample = df.head(3).to_csv(index=False)
question = "Which product sold the most units in October 2026?"
prompt = f"""A pandas DataFrame named df has these columns and types:
{schema}
First 3 rows (CSV):
{sample}
Question: {question}
Reply with ONE line of pandas code that computes the answer from df.
No explanation, no markdown, no imports."""
resp = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
messages=[{"role": "user", "content": prompt}],
max_tokens=500,
)
text = resp.choices[0].message.content.strip()
code = text.removeprefix("```python").removeprefix("```").removesuffix("```").strip()
print("Model's line:", code)
print("Tokens in/out:", resp.usage.prompt_tokens, resp.usage.completion_tokens)
if resp.choices[0].finish_reason != "stop" or "import" in code or "__" in code:
raise SystemExit("Not running this one. Read the line above and decide.")
print("Answer:", eval(code, {"df": df, "pd": pd}))Der letzte Block ist der Teil, den Anfänger überspringen. eval führt jeden Text aus, den das Modell geschrieben hat, auf Ihrem Rechner, daher lehnt das Skript Zeilen mit import oder __ und abgeschnittene Antworten ab (finish_reason anders als stop; siehe warum eine Antwort mitten im Satz endet). Und Sie lesen trotzdem zuerst die ausgegebene Zeile. Wenn sie Dateien, das Netzwerk oder irgendetwas berührt, wonach Sie nicht gefragt haben, führen Sie sie nicht aus.
Der erste Lauf gibt drei Dinge aus: die Zeile des Modells, die Token-Zahlen für diese eine Anfrage und die Antwort. Die Token-Zahlen sind Ihr Maßstab für den nächsten Abschnitt.
Was es kostet: alles einfügen vs. Schema + 3 Zeilen#
Für den Vergleich brauchen wir eine Größe für eine Zeile. Sagen wir, eine Zeile wie 2026- braucht etwa 20 Tokens. Das ist eine Annahme: Sie hängt vom Tokenizer des Modells und Ihren Spalten ab, und Tokens vor dem Senden zählen zeigt Ihre echte Zahl. Mit 20 Tokens pro Zeile sind 5.000 Zeilen 5.000 × 20 = 100.000 Eingabe-Tokens. Der Prompt mit Schema und drei Zeilen umfasst etwa 300 Tokens, Anweisungen inklusive. Die Antwort ist in beiden Fällen kurz, sagen wir 60 Tokens, sodass der Unterschied vollständig auf der Eingabeseite liegt, der Seite, die mit Ihrer Tabelle wächst (mehr dazu in Eingabe- vs. Ausgabe-Tokens).
Beide Zahlen sind in Dollar klein, und das ist ehrlich: Ein günstiges Modell macht selbst den verschwenderischen Weg bezahlbar. Die Lücke ist das, was wächst. Stellen Sie 20 Fragen am Tag, und der Alles-Einfügen-Prompt wird 20 Mal gesendet. Verdoppeln Sie die Tabelle, verdoppeln sich seine Kosten, während sich der Schema-Prompt nicht bewegt. Und es gibt eine harte Grenze: Mit einem Kontextfenster von 380K Tokens sind 380.000 ÷ 20 = 19.000 Zeilen das Maximum, das Sie jemals einfügen könnten, bevor noch Platz für die Antwort bleibt. Ein Export mit 50.000 Zeilen passt einfach nicht. Der Schema-Prompt passt, egal wie groß die Tabelle ist.
Setzen Sie Ihre eigene Tabelle ein und sehen Sie die täglichen Kosten:
Kostenrechner
Ihre Tabelle komplett eingefügt: 20 Fragen am Tag
Eingabe-Tokens pro Anfrage: 100.000 · Ausgabe-Tokens pro Anfrage: 60 · Anfragen pro Tag: 20
| Modell | Pro Tag | Pro Monat |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.04 | $1.20 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.0301 | $0.904 |
| MiniMax-M2.7$0.05$0.15 | $0.10 | $3.01 |
Ändern Sie in auf 300, um den Schema-Weg zu sehen. DeepSeek-V4-Flash auf CheapTokens hat zu jeder Stunde einen Preis, keinen Stoßzeit-Zuschlag, und ein Guthaben deckt jedes Modell ab, sodass Sie die Modell-ID gegen zai- (390K Kontext) tauschen können, ohne ein zweites Konto. Aktuelle Preise finden Sie auf der Preisseite.
Prüfen Sie die Zahl, bevor Sie ihr vertrauen#
Die Schleife ist immer dieselbe. Machen Sie es jedes Mal, und eine falsche Antwort wird in Schritt vier erkannt statt in einem Bericht.
In die richtige Reihenfolge bringen
Bringen Sie die Schleife in die richtige Reihenfolge
Ziehe die Elemente oder benutze die Pfeile
- Beschreiben Sie die Tabelle: Spaltentypen und 3 Beispielzeilen
- Bitten Sie um eine pandas-Zeile, nichts weiter
- Lesen Sie die Zeile, dann führen Sie sie auf der vollständigen Datei aus
- Prüfen Sie das Ergebnis von Hand an ein paar Zeilen

Schritt vier ist günstig. Filtern Sie die Datei auf eine Handvoll Zeilen herunter (df[df['product'] == 'Cocoa'].), addieren Sie sie im Kopf oder in einer Tabellenkalkulation und vergleichen Sie. Wenn die Zeile des Modells falsch ist, ist sie meist auf offensichtliche Weise falsch: Es hat Zeilen gezählt statt units zu summieren, oder es hat den falschen Monat gewählt.
Für weitere Gewohnheiten wie diese siehe warum KI Dinge erfindet und 4 Prompt-Gewohnheiten, die das reduzieren.
Wenn es nicht funktioniert#
KeyError: 'Date'. Das Modell hat einen Spaltennamen mit anderer Groß-/Kleinschreibung geschrieben. Fügen Sie die echte Kopfzeile in den Prompt ein, was die drei Beispielzeilen bereits tun, und ergänzen Sie "verwende die Spaltennamen genau wie gezeigt".- Die Antwort enthält einen Satz vor dem Code. Ihr
evalschlägt mit einemSyntaxErrorfehl. Wiederholen Sie "EINE Zeile pandas-Code, keine Erklärung" am Ende des Prompts, die letzte Anweisung zählt am meisten. - Die Antwort ist eine Tabelle, keine Zahl. Sagen Sie, welche Form Sie wollen: "gib eine einzelne Zahl zurück" oder "gib eine absteigend sortierte Series zurück".
- Daten kommen falsch heraus. Die Beispielzeilen zeigen das echte Format. Wenn Ihre Daten als
14/10/2026vorliegen, muss das Modell das sehen; fügen Siepd.als gewünschte Lesart der Daten in den Prompt ein.to_ datetime(df['date'], dayfirst=True) finish_reasonistlength. Die Antwort wurde durchmax_tokensabgeschnitten. Eine einzelne Zeile passt in 500 Tokens, also prüfen Sie den Prompt: Das Modell erklärt möglicherweise ausführlich.
Die vollständige Einrichtung für Ihre erste Anfrage, vom Schlüssel bis zur Antwort, finden Sie in der CheapTokens-Dokumentation.



