만약 여전히 데이터를 수동으로 정리하고 있다면, 당신은 엑셀을 잘못 사용하고 있는 것입니다—파이썬이 몇 초 만에 대신 처리해 줍니다
엑셀 스프레드시트에 잘못된 값, 빈 항목, 중복 또는 기타 문제가 있는 경우 이를 정리하는 데 몇 시간을 써야 한다고 생각할 수 있습니다. 대신 파이썬을 사용하여 이러한 단계를 자동화할 수 있습니다. 방법은 다음과 같습니다.
파이썬 환경 설정하기
필요한 패키지 설치하기
만약 이미 Python 환경을 설정하지 않았다면, 설정하는 것은 쉽습니다. 만약 Windows를 사용하고 있다면, Windows Subsystem for Linux, 즉 WSL을 사용하는 것을 권장합니다. Python 튜토리얼은 대체로 Linux 환경 또는 적어도 Unix와 유사한 환경을 가정하는 경우가 많으며, 경로 이름과 같은 것들을 번역할 필요가 없기 때문에 다른 튜토리얼을 따라가기가 더 쉬울 것입니다.
WSL이 설치되어 있지 않다면, 설치해야 합니다.
또한 시스템 위에 또 다른 종류의 환경이 필요할 것입니다. Python은 많은 시스템, 거의 모든 주요 Linux 배포판에 포함되어 있지만, 이는 주로 스크립트나 다른 포함된 소프트웨어를 실행하기 위한 것이지, 자신의 프로그램을 위한 것은 아닙니다. 운영 체제가 소프트웨어를 얼마나 빨리 업데이트하는지에 따라, 당신의 Python 버전은 더 오래될 수 있습니다.
또한 Python 위에 몇 가지 라이브러리를 설치해야 합니다.
Python 패키지를 설치할 수 있는 여러 환경이 있지만, 제가 가장 좋아하는 환경은 우연히도 Pixi입니다.
Linux, macOS 또는 WSL 터미널 창에서 다음을 입력하세요:
curl -fsSL https://pixi.sh/install.sh | sh이것은 당신의 컴퓨터에 Pixi를 설치할 것입니다.
Pixi가 설치되면 패키지용 환경을 만들거나 전역적으로 설치할 수 있습니다. 이 프로젝트에는 이러한 도구를 바로 사용할 수 있으므로 아마도 전역 설치가 더 나은 선택일 것입니다.
우리가 사용할 주요 패키지는 pandas이지만, 이 프로젝트를 위해 몇 가지 다른 패키지도 필요합니다. NumPy는 Python을 이용한 수치 계산의 기반입니다. 또한 Jupyter 노트북도 설치하고 싶습니다. 이는 Python 코드를 그래픽 방식으로 실행할 수 있게 해주며, 나중에 코드를 검토할 수 있도록 합니다. IPython도 비슷하지만, 터미널에서 작동합니다.
이 도구들을 전역 환경에 설치합시다
pixi global install numpy pandas jupyter ipython
데이터를 파이썬으로 가져오기
환경을 설치했으므로 이제 엉망인 스프레드시트를 정리할 수 있습니다.
이 예제에서는 제가 Kaggle에서 찾은 데이터셋의 수정된 버전을 사용할 것입니다. 이 데이터셋은 지저분한 데이터를 정리하는 학습을 위해 특별히 만들어진 것입니다. 결측치와 많은 'ERROR' 또는 일관되지 않은 용어와 같은 문제가 많습니다. 원래는 .csv 파일이었지만, pandas가 Excel 파일을 다루는 방법을 보여주기 위해 LibreOffice를 사용하여 Excel 파일로 저장했습니다.
나는 주피터를 실행할 것이다:
jupyter notebook이것은 웹 브라우저를 열 것입니다, 아니면 제가 Windows에서 WSL을 사용하지 않았다면 그랬을 것입니다. 오류 메시지를 제거하려면 명령어를 수정해야 합니다.
jupyter notebook -no-browser내 웹 브라우저에서 링크 중 하나를 열 거예요.
저는 보통 이 모든 것을 우회하기 위해 셸 별칭을 사용합니다.
다음으로, 새 노트북을 만들고 Python을 커널로 사용할 것입니다.
나는 Markdown 셀로 헤더와 설명 노트를 넣는 것을 좋아한다.
첫 번째 코드 셀에서는 내가 사용할 라이브러리를 가져오겠습니다
import numpy as np
import pandas as pd이제 나는 엉망인 데이터셋을 읽을 것이다
cafe = pd.read_excel('/path/to/messy_data.xlsx')문제를 잘 이해할 수 있도록 제가 데이터세트를 검토할 수 있습니다:
cafe.head()누락된 값 삭제
너는 그들을 그리워하지 않을 거야
데이터셋을 정리하는 가장 쉬운 방법은 누락된 값을 제거하는 것입니다. Pandas DataFrame에는 이를 수행하는 내장 메서드인 dropna가 있습니다. 데이터 변수를 이 메서드로 설정하면 DataFrame을 제자리에서 수정합니다:
cafe = cafe.dropna()중복 항목 제거
데이터를 중복 사용하지 마세요
이제 중복된 항목을 제거하고 싶습니다. Pandas에는 dropna와 유사하게 작동하는 drop_duplicates라는 내장 메서드가 있습니다:
cafe = cafe.drop_duplicates()이것은 중복 항목을 제거하기 위해 다시 한 번 우리의 DataFrame을 제자리에서 편집할 것입니다.
열 수정
유효하지 않은 값을 제거하세요
우리는 여전히 몇 가지 문제가 있습니다. 이 열의 많은 항목에 'ERROR' 또는 'UNKNOWN'과 같은 것이 있습니다. 우리는 아마도 그것들을 원하지 않을 것입니다.
그들을 제거하는 것은 쉽습니다. 먼저 필터링하려는 열의 배열을 만들겠습니다:
columns = ['Item','Quantity','Price Per Unit','Total Spent','Payment Method', 'Location', 'Transaction Date']그런 다음 열을 통해 이동하며 'ERROR ' 또는 'UNKNOWN '를 포함하는 필드를 제거하는 for 루프를 만들겠습니다:
for i in columns:
cafe = cafe[cafe[i] != "ERROR"]
cafe = cafe[cafe[i] != "UNKNOWN"]파이썬 반복문 안의 문장은 들여쓰기를 해야 하며, 파이썬은 네 칸의 공백을 들여쓰기로 계산합니다.
그 루프가 하는 일은 열에서 'ERROR'나 'UNKNOWN'과 같지 않은 모든 값을 선택하고 그 자리에서 저장하는 것입니다.
변경 사항의 효과를 보기 위해 head 또는 tail 메서드를 사용하여 DataFrame을 반드시 확인하세요. 원하지 않는 작업이 수행되었다면, 원본 데이터를 다시 로드하고 다시 시도할 수 있습니다.
이 덕분에 Excel에서 이 모든 것을 일일이 확인하고 검색 및 바꾸기 작업을 수행해야 했던 많은 시간을 절약할 수 있었습니다.
결과를 확인하려면 data.head() 명령을 다시 실행할 수 있습니다.
데이터를 다시 엑셀 스프레드시트에 넣기
판다스 DataFrame을 다시 Excel로 변환하는 것은 쉽습니다
이제 데이터가 정리되었으므로 Excel 스프레드시트에 다시 저장할 수 있습니다. DataFrame의 to_excel 메서드를 사용할 수 있습니다.
data.to_excel('/path/to/cleaned_data.xlsx')파이썬에서 엑셀 데이터를 정리하는 것은 쉽습니다
파이썬을 배우는 데 조금의 시간과 판다스를 조금 다루는 것만으로도 각자 스프레드시트를 편집하는 데 낭비될 수 있는 수 시간을 절약할 수 있습니다. 파이썬과 엑셀 같은 스프레드시트는 좋은 조합을 이룹니다. 데이터를 편집하고 서식을 지정하는 데에는 엑셀을, 데이터를 정리하고 보다 강력한 인사이트를 추출하는 데에는 파이썬을 사용하는 식입니다.










