CSV-Zeilen mit Seed reproduzierbar zufällig auswählen
Dieses Werkzeug wählt eine exakt festgelegte Anzahl von CSV-Datensätzen ohne Zurücklegen aus und behält die ursprüngliche Kopfzeile bei.
Im Browser ausführen – kostenlos
Geben Sie CSV-Text, Stichprobengröße und einen ganzzahligen Seed an: Dieselben drei Eingaben liefern stets dieselbe CSV-Stichprobe. Das ist besonders hilfreich, wenn Sie für Prüfungen, Tests, Vorführungen oder Audits einen kleineren Datensatz benötigen, den andere Beteiligte exakt wiederherstellen können.
Erstellen Sie eine von anderen reproduzierbare Zufallsstichprobe
Eine gewöhnliche Zufallsauswahl wird problematisch, sobald eine andere Person sie wiederholen muss. Eine Tabellenkalkulation kann nach einer Neuberechnung andere Datensätze auswählen, während ein undokumentiertes Skript Zweifel weckt, ob sich das Ergebnis zwischen zwei Läufen verändert hat. Bei diesem Werkzeug gehört der Seed neben CSV-Text und gewünschter Stichprobengröße ausdrücklich zur Eingabe. Identische Eingaben ergeben deshalb exakt dieselben Datensätze. Das eignet sich für versionierte Experimente, Prüfprotokolle und wiederholbare Qualitätskontrollen. Der erste CSV-Datensatz gilt immer als Kopfzeile und bleibt erhalten. Nur die darunterliegenden Datensätze werden ausgewählt, und jeder kann höchstens einmal vorkommen. Die ausgegebenen Zeilen behalten ihre ursprüngliche relative Reihenfolge. Dadurch lässt sich die kleinere Datei leichter mit der Quelle vergleichen. In Anführungszeichen eingeschlossene Felder dürfen Kommas, maskierte Anführungszeichen oder Zeilenumbrüche enthalten; die Datensatzgrenzen werden erkannt, ohne den Inhalt zu glätten oder neu aufzubauen.
Wählen Sie Stichprobengröße und Seed bewusst
Setzen Sie sample_size auf die genaue Anzahl der benötigten Datensätze. Der Wert null ist zulässig und gibt nur die Kopfzeile zurück. Damit können Sie beispielsweise eine leere Testdatei erstellen, die das Schema weiterhin enthält. Die Größe darf die Zahl der vorhandenen Datensätze nicht überschreiten, weil ohne Zurücklegen ausgewählt wird: Mehr unterschiedliche Zeilen anzufordern, als vorhanden sind, wäre unmöglich. In diesem Fall erhalten Sie einen eindeutigen Eingabefehler, statt dass Datensätze dupliziert oder die gewünschte Größe stillschweigend verringert werden. seed muss eine sichere Ganzzahl sein. Er ist kein Sicherheitsgeheimnis und muss nicht unvorhersehbar sein; er bezeichnet lediglich eine reproduzierbare Auswahl. Teams leiten ihn häufig aus einer Experimentnummer, einem Testfall oder einer Prüfrunde ab und speichern ihn mit dem Ergebnis. Ändern Sie nur den Seed, entsteht meist eine andere Stichprobe; stellen Sie den vorherigen Wert wieder her, erhalten Sie die frühere Auswahl. Für genaue Reproduzierbarkeit muss auch die Quelldatei unverändert bleiben.
Setzen Sie CSV-Stichproben verantwortungsvoll ein
Eine Zufallsstichprobe unterstützt schnelle Sichtprüfungen, grundlegende Pipeline-Tests, Vorführungen und handliche Testdaten, ist jedoch nicht automatisch statistisch repräsentativ. Seltene Kategorien können zufällig fehlen, besonders bei einer kleinen Stichprobe. Falls jede Kategorie vertreten sein muss, verwenden Sie ein geschichtetes Verfahren und betrachten Sie eine uneingeschränkte Zufallsauswahl nicht als Garantie. Diese Fähigkeit führt weder Netzwerkaufrufe noch Anreicherungen, Typumwandlungen, Trennzeichenwechsel oder Datenbereinigungen durch. Sie bewahrt die ausgewählten CSV-Datensätze unverändert und fügt sie unter der ursprünglichen Kopfzeile zusammen. So werden weder Datumsangaben umformatiert noch Zahlen normalisiert. Mehrzeilige Datensätze in Anführungszeichen bleiben ebenfalls intakt. Leere physische Zeilen unterhalb der Kopfzeile zählen als Datensätze, da ihr Entfernen die gelieferte Grundgesamtheit verändern würde. Speichern Sie in automatisierten Abläufen Seed, Stichprobengröße und eine stabile Kopie oder Prüfsumme der Quelle. API-Anfragen kosten $0.002; im Browser läuft dieselbe Berechnung lokal.
Anwendungsfälle
Wiederholbare Testdaten erstellen
Wählen Sie eine kompakte CSV-Teilmenge für Integrationstests aus und speichern Sie den Seed, damit Fehler reproduzierbar bleiben.
Eine handliche Prüfdatei weitergeben
Stellen Sie weniger Datensätze bereit und erhalten Sie Kopfzeile, Rohformat und ein reproduzierbares Auswahlverfahren.
Experimentläufe vergleichen
Verwenden Sie für alternative Transformationen oder Modelle dieselben Zeilen, damit Eingabeunterschiede den Vergleich nicht verzerren.
Häufige Fragen
Kann dieselbe Zeile zweimal ausgewählt werden?
Nein. Die Auswahl erfolgt ohne Zurücklegen, sodass jeder gewählte Datensatz eine andere Quellposition besitzt.
Bleibt die CSV-Kopfzeile in der Ausgabe erhalten?
Ja. Der erste Datensatz bleibt als Kopfzeile bestehen; nur die folgenden Datensätze werden ausgewählt.
Wodurch wird das Ergebnis deterministisch?
Der ganzzahlige Seed initialisiert einen festen Pseudozufallsalgorithmus. Gleiche CSV-Daten, Größe und Seed liefern dieselbe Ausgabe.
Was geschieht, wenn die Stichprobe größer als die CSV ist?
Die Anfrage endet mit einem Eingabefehler, weil ohne Zurücklegen keine größere Auswahl unterschiedlicher Zeilen möglich ist.
Werden Felder in Anführungszeichen und mehrzeilige Felder unterstützt?
Ja. Kommas in Anführungszeichen, maskierte doppelte Anführungszeichen und Zeilenumbrüche innerhalb solcher Felder werden erkannt.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die Browserversion führt dieselbe reine Berechnung lokal aus.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/random-sample-rows \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"csv":"id,name,team\n1,Ada,Blue\n2,Grace,Red\n3,Linus,Blue\n4,Margaret,Green\n5,Donald,Red","sample_size":3,"seed":42}'const res = await fetch("https://api.kit.forhosting.com/data/random-sample-rows", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"csv": "id,name,team\n1,Ada,Blue\n2,Grace,Red\n3,Linus,Blue\n4,Margaret,Green\n5,Donald,Red",
"sample_size": 3,
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/random-sample-rows",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"csv": "id,name,team\n1,Ada,Blue\n2,Grace,Red\n3,Linus,Blue\n4,Margaret,Green\n5,Donald,Red",
"sample_size": 3,
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/random-sample-rows", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"csv":"id,name,team\\n1,Ada,Blue\\n2,Grace,Red\\n3,Linus,Blue\\n4,Margaret,Green\\n5,Donald,Red","sample_size":3,"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"csv":"id,name,team\n1,Ada,Blue\n2,Grace,Red\n3,Linus,Blue\n4,Margaret,Green\n5,Donald,Red","sample_size":3,"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/random-sample-rows", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"csv": "id,name,team\n1,Ada,Blue\n2,Grace,Red\n3,Linus,Blue\n4,Margaret,Green\n5,Donald,Red",
"sample_size": 3,
"seed": 42
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.random_sample_rows",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |