데이터 분석을 하기 위해서
추출된 CSV 파일 중에 간혹
항목 값에 쉼표를 포함하고 있는 경우가 있는데요.
CSV 파일은 항목 간 구분이
쉼표(,)로 되어 있기 때문에
단순히 read_csv 파일로 읽을 수가 없어요.
이럴 때, 가장 좋은 방법은 데이터 엔지니어분께
쉼표(,)가 아닌 다른 구분자로 추출 요청하는 게
가장 좋은 방법인데요.
항목에 쉼표(,)가 어떤 방식이든
규칙적으로 들어가 있다면,
이 규칙을 고려하여 데이터 프레임으로
변환에 성공할 수 있어요.
아래 업로드한 데이터를
데이터 프레임으로 전환하는 과정을
포스팅해보겠습니다.
아래 첨부된 데이터를
다운로드하세요.
우선, pandas를 로딩한 후에
데이터 읽기를 시도했어요.
에러가 뜨네요.
최하단의 에러를 보니,
4개의 항목이 있어야 하는데,
11번째 라인에서 5개의 항목이 보인다고 하네요.
일단, 데이터의 항목을 파악하기 위해서
header만 읽어 들여 확인해 보겠습니다.
일단, 항목은 4개('id', '과일', '성별', '가격')를
확인했고,
우선, 1번째 라인만 읽어 보겠습니다.
id = 1이라는 여성 분이
'사과'를 2800원에 구입했다는 것을 알 수 있네요.
(상황에 대한 가정입니다 ㅎ)
문제가 되는 11번째 라인만 읽어 볼게요.
예측컨데,
id = 1이라는 남성 분이
'귤'과 '바나나'를 623원에 구입한 것 같아요.
(상황에 대한 가정입니다 ㅎ)
그런데, '과일'이라는 항목에
"귤, 바나나"로 들어가 있어서,
읽어 들일 때,
귤과 바나나를 각각 읽어 드린 것 같네요.
문제가 되는 11번째 라인 이후로 읽어볼게요.
21번째 라인에서 또 문제가 발생했네요.
21번째 라인만 보겠습니다.
이 분 역시 고구마, 바나나, 감을 구입했는데,
항목 값이 쉼표(,)로 구분되어 있어
에러가 발생하였음을 확인할 수 있습니다.
일단, 읽기 위한 규칙을 발견해 보겠습니다.
첫 번째 칼럼(항목)은 이슈가 없고,
성별과 가격을 나타내는
항목도 이슈가 없고,.....
중간에 있는 칼럼(들)을 하나로 합치기만
하면 될 거 같아 보이네요.
우선,
전체 데이터를 하나의 문자열로 읽어 들이고,
'\n' 구분자를 활용해서 리스트로 변환하겠습니다.
이렇게 생성된 리스트의 각 요소를
데이터 프레임으로 변환하여
각 데이터 프레임에 대해서
위에서 발견한 규칙을 활용해서
변환 후,
각 데이터 프레임을 하나로 합쳤습니다.
문제가 되었던 열들을
확인해 보겠습니다.
의도한 데로 정확히
파일을 데이터 프레임으로 전환하는 데 성공하였습니다.
만약, 일정한 규칙 없이 마구 섞여 있는 경우라면.......
데이터 추출을 다시 해야 할 거 같네요.
'Python > 데이터 다루기' 카테고리의 다른 글
데이터 분석을 위한 강력한 Pandas 함수 2 (0) | 2022.06.06 |
---|---|
Python에서 Lambda 함수를 사용하는 5가지 팁 (0) | 2022.06.04 |
알아두면 데이터 분석 시 시간을 절약할 수 있는 16가지 Python 및 Pandas Hacks (0) | 2022.05.23 |
데이터 분석의 70%를 처리할 수 있는 10가지 Python 작업 (0) | 2022.05.21 |
Python에서 JSON을 사용하는 방법(for 초급자) (0) | 2022.05.13 |
댓글