Saltar al contenido
🛠️ToolsShed

Filtro de Filas CSV

Filtra filas CSV por condiciones de valor de columna.

Acerca de esta herramienta

CSV Row Filter es una herramienta basada en navegador que te permite filtrar filas de un archivo CSV según los valores de las columnas. Ya sea que trabajes con conjuntos de datos, registros de clientes o cualquier dato tabular, esta herramienta te ayuda a aislar rápidamente las filas que coinciden con tus criterios sin necesidad de escribir código o usar fórmulas complejas de hojas de cálculo.

Para usar la herramienta, pega tus datos CSV en el campo de entrada y define condiciones de filtro seleccionando una columna, eligiendo un operador (igual, contiene, mayor que, etc.) e ingresando un valor. Puedes combinar múltiples condiciones usando lógica AND/OR para crear filtros precisos. Las filas coincidentes se muestran instantáneamente en la salida, que puedes copiar, descargar o refinar aún más con filtros adicionales.

CSV Row Filter es especialmente útil para analistas de datos, desarrolladores y cualquier persona que trabaje regularmente con conjuntos de datos tabulares. Maneja formatos comunes automáticamente, preserva tus datos originales y se ejecuta completamente en tu navegador sin carga en servidor, lo que la convierte en una forma rápida y segura de explorar y procesar archivos CSV.

Preguntas Frecuentes

Implementación de Código

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.