Filtro Righe CSV
Filtra le righe CSV in base alle condizioni del valore della colonna.
Informazioni sullo strumento
CSV Row Filter è uno strumento basato su browser che ti consente di filtrare le righe di un file CSV in base ai valori delle colonne. Che tu stia lavorando con set di dati, record di clienti o altri dati tabulari, questo strumento ti aiuta a isolare rapidamente le righe che corrispondono ai tuoi criteri senza dover scrivere codice o utilizzare formule complesse dei fogli di calcolo.
Per utilizzare lo strumento, incolla i tuoi dati CSV nel campo di input e definisci le condizioni di filtro selezionando una colonna, scegliendo un operatore (uguale, contiene, maggiore di, ecc.) e inserendo un valore. Puoi combinare più condizioni utilizzando la logica AND/OR per creare filtri precisi. Le righe corrispondenti vengono visualizzate istantaneamente nell'output, che puoi copiare, scaricare o affinare ulteriormente con filtri aggiuntivi.
CSV Row Filter è particolarmente utile per analisti di dati, sviluppatori e chiunque lavori regolarmente con set di dati tabulari. Gestisce automaticamente i formati comuni, preserva i tuoi dati originali e funziona completamente nel tuo browser senza caricamento su server, rendendolo un modo veloce e sicuro per esplorare ed elaborare file CSV.
Domande Frequenti
Implementazione del Codice
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.