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.