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.