Zum Inhalt springen
🛠️ToolsShed

CSV-Zeilenfilter

Filtert CSV-Zeilen nach Spaltenwertkonditionenen.

Über dieses Tool

CSV Row Filter ist ein browserbasiertes Tool zum Filtern von Zeilen einer CSV-Datei basierend auf Spaltenwerten. Egal ob Sie mit Datensätzen, Kundendatensätzen oder anderen tabellarischen Daten arbeiten, dieses Tool hilft Ihnen, die Zeilen, die Ihren Kriterien entsprechen, schnell zu isolieren, ohne Code schreiben oder komplexe Tabellenkalkulationsformeln verwenden zu müssen.

Um das Tool zu verwenden, fügen Sie Ihre CSV-Daten in das Eingabefeld ein und definieren Sie Filterbedingungen, indem Sie eine Spalte auswählen, einen Operator (gleich, enthält, größer als usw.) wählen und einen Wert eingeben. Sie können mehrere Bedingungen mit AND/OR-Logik kombinieren, um präzise Filter zu erstellen. Die übereinstimmenden Zeilen werden sofort in der Ausgabe angezeigt, die Sie kopieren, herunterladen oder mit zusätzlichen Filtern weiter verfeinern können.

CSV Row Filter ist besonders nützlich für Datenanalysten, Entwickler und jeden, der regelmäßig mit tabellarischen Datensätzen arbeitet. Es handhabt gängige Formate automatisch, bewahrt Ihre Originaldaten und läuft vollständig in Ihrem Browser ohne Server-Upload, was es zu einer schnellen und sicheren Möglichkeit macht, CSV-Dateien zu erkunden und zu verarbeiten.

Häufig gestellte Fragen

Code-Implementierung

import csv
import io

def filter_csv(csv_text: str, column: str, condition: str, value: str) -> str:
    """
    Filter CSV rows by condition on a column.
    condition: 'contains' | 'equals' | 'gt' | 'lt' | 'not_contains'
    """
    reader = csv.DictReader(io.StringIO(csv_text))
    if reader.fieldnames is None:
        return ""
    rows = []
    for row in reader:
        cell = row.get(column, "")
        if condition == "contains" and value.lower() in cell.lower():
            rows.append(row)
        elif condition == "equals" and cell == value:
            rows.append(row)
        elif condition == "not_contains" and value.lower() not in cell.lower():
            rows.append(row)
        elif condition in ("gt", "lt"):
            try:
                if condition == "gt" and float(cell) > float(value):
                    rows.append(row)
                elif condition == "lt" and float(cell) < float(value):
                    rows.append(row)
            except ValueError:
                pass

    out = io.StringIO()
    writer = csv.DictWriter(out, fieldnames=reader.fieldnames)
    writer.writeheader()
    writer.writerows(rows)
    return out.getvalue()

csv_data = """name,age,city
Alice,30,New York
Bob,25,London
Carol,35,New York"""

print(filter_csv(csv_data, "city", "equals", "New York"))
print(filter_csv(csv_data, "age", "gt", "28"))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.