CSV에서 데이터 추출

CSV에서 데이터 추출

친구! 나는 거대한 csv 파일을 가지고 있으며 "data.status"라는 열이 "Full"과 같은 헤더가 있는 행을 추출한 다음 빈 열을 제거하고 다른 csv 파일에 써야 합니다. grep |을 사용하여 이를 달성할 수 있습니까? sed | 어? 답변 주셔서 감사합니다!

편집 1. 약 60,000개의 json 파일을 평면화하고 해당 파일의 데이터를 csv에 작성하여 이 csv를 만들었습니다. 헤더의 실제 개수를 잘 모르고 열 수도 없습니다. (csv 파일 크기는 약 1.5GB입니다.) 하지만 빈 필드가 많아서 이를 제거하여 더 읽기 쉽게 만들고 싶습니다. 예를 들어 csv가 있습니다.

날짜.상태, 날짜.시작, 날짜.종료, 날짜.프로젝트

실패, 21-03-15, 25-03-15, some_item

완료,,,,항목 2

출력은 다음과 같아야 합니다.

날짜.상태,날짜.프로젝트

완료, 프로젝트 2

답변1

해킹을 위해 grep/sed/awk를 사용할 수 있지만 CSV 파서를 구현하는 것은 쉽지 않으므로 빠른 해킹에만 사용하는 것이 좋습니다(예: 다양한 특수 이스케이프/인용 시나리오를 고려해야 합니다).

이 작업을 수행하려면 Python stdlib에서 제공되는 것과 같은 실제 완전한 CSV 파서를 사용하는 것이 좋습니다.

import csv

with open('your.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    kept_rows = (row for row in reader if row['data.status'] == 'complete')

그런 다음 다음을 사용하여 새 줄을 작성할 수 있습니다.DictWriter.

관련 정보