Pular para o conteúdo
🛠️ToolsShed

Filtro de Linhas CSV

Filtra linhas CSV por condições de valor de coluna.

Sobre esta ferramenta

CSV Row Filter é uma ferramenta baseada em navegador que permite filtrar linhas de um arquivo CSV com base nos valores das colunas. Quer você esteja trabalhando com conjuntos de dados, registros de clientes ou qualquer dado tabular, esta ferramenta o ajuda a isolar rapidamente as linhas que correspondem aos seus critérios sem precisar escrever código ou usar fórmulas complexas de planilha.

Para usar a ferramenta, cole seus dados CSV no campo de entrada e defina condições de filtro selecionando uma coluna, escolhendo um operador (igual, contém, maior que, etc.) e inserindo um valor. Você pode combinar várias condições usando lógica AND/OR para criar filtros precisos. As linhas correspondentes são exibidas instantaneamente na saída, que você pode copiar, baixar ou refinar ainda mais com filtros adicionais.

CSV Row Filter é especialmente útil para analistas de dados, desenvolvedores e qualquer pessoa que trabalhe regularmente com conjuntos de dados tabulares. Ele lida com formatos comuns automaticamente, preserva seus dados originais e executa completamente no seu navegador sem upload para servidor, tornando-o uma forma rápida e segura de explorar e processar arquivos CSV.

Perguntas Frequentes

Implementação 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.