Aller au contenu
🛠️ToolsShed

Filtre de Lignes CSV

Filtre les lignes CSV par conditions de valeur de colonne.

À propos de cet outil

CSV Row Filter est un outil basé sur navigateur qui vous permet de filtrer les lignes d'un fichier CSV en fonction des valeurs de colonnes. Que vous travailliez avec des ensembles de données, des enregistrements clients ou d'autres données tabulaires, cet outil vous aide à isoler rapidement les lignes qui correspondent à vos critères sans avoir besoin d'écrire du code ou d'utiliser des formules complexes de feuille de calcul.

Pour utiliser l'outil, collez vos données CSV dans le champ de saisie et définissez les conditions de filtrage en sélectionnant une colonne, en choisissant un opérateur (égal, contient, supérieur à, etc.) et en entrant une valeur. Vous pouvez combiner plusieurs conditions en utilisant la logique AND/OR pour créer des filtres précis. Les lignes correspondantes s'affichent instantanément dans la sortie, que vous pouvez copier, télécharger ou affiner davantage avec des filtres supplémentaires.

CSV Row Filter est particulièrement utile pour les analystes de données, les développeurs et toute personne qui travaille régulièrement avec des ensembles de données tabulaires. Il gère les formats courants automatiquement, préserve vos données originales et s'exécute entièrement dans votre navigateur sans téléchargement sur serveur, ce qui en fait un moyen rapide et sécurisé d'explorer et de traiter les fichiers CSV.

Questions Fréquentes

Implémentation du Code

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.