CSV 행 필터
열 값 조건으로 CSV 행을 필터링합니다.
이 도구 소개
CSV Row Filter는 열의 값을 기준으로 CSV 파일의 행을 필터링하는 브라우저 기반 도구입니다. 데이터 세트, 고객 기록, 또는 표 형식의 데이터를 다룰 때 이 도구는 코드를 작성하거나 복잡한 스프레드시트 공식을 사용하지 않고도 조건과 일치하는 행을 빠르게 추출하는 데 도움이 됩니다.
이 도구를 사용하려면 CSV 데이터를 입력 필드에 붙여넣고 열을 선택하고, 연산자(같음, 포함, 초과 등)를 선택하고, 값을 입력하여 필터 조건을 정의합니다. AND/OR 로직을 사용하여 여러 조건을 결합하여 정확한 필터를 만들 수 있습니다. 일치하는 행은 출력에 즉시 표시되며, 복사하거나 다운로드하거나 추가 필터로 더 분석할 수 있습니다.
CSV Row Filter는 데이터 분석가, 개발자, 그리고 정기적으로 표 형식의 데이터 세트를 다루는 모든 사람에게 특히 유용합니다. 일반적인 형식을 자동으로 처리하고, 원본 데이터를 보존하며, 브라우저 내에서 완전히 실행되므로 서버 업로드 없이 CSV 파일을 빠르고 안전하게 탐색하고 처리할 수 있습니다.
자주 묻는 질문
코드 구현
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.