Matplotlib 그래프 2 1편은 아래에서 확인하실 수 있습니다:) https://wonhwa1.blogspot.com/2022/11/python-matplotlib.html 데이터 준비 1편에서 사용한 csv데이터를 준비해 주세요. 또는 아래의 링크에서 다운받으실 수 있습니다. https://www.kaggle.com/imakash3011/customer-personality-analysis 다변량 그래프 그리기 다변량 그래프는 변수가 여러 개 있는 그래프입니다. 이번 포스팅에는 변수를 4개를 추가하여 그래프를 그리는 방법을 알아보도록 하겠습니다. x축: MntMeatProducts(육류구매량) y축: MntWines(와인구매량) 색구분: Edu_level(학력) 사이즈구분: NumWebPurchases(웹사이트구매횟수) 이렇게 4개의 변수를 그래프로 표현해 보겠습니다. 기존 csv를 불러온 df에서 null 값이 있으면 0으로 일괄대체를 해준 후 나머지 과정을 진행합니다. 먼저 학력별로 색 구분을 하려면 str데이터인 학력을 문자에서 숫자로 변환하는 작업이 필요합니다. 이 작업을 아래의 함수를 써서 학력을 숫자로 바꾼 후, 바꾼 숫자들을 'Edu_level'이라는 학력 컬럼을 새로 만들어 입력 하겠습니다. import pandas as pd import matplotlib.pyplot as plt from matplotlib import font_manager,rc # 한글 폰트 설정 font_location = 'C:/Windows/Fonts/MALGUNSL.TTF' #맑은고딕 font_name = font_manager.FontProperties(fname=font_location).get_name() rc('font',family=font_name) #데이터 셋 불러오기 df = pd.read_csv('marketing_campaign.csv',sep='\t') # nul
geopy란? geopy는 파이썬 라이브러리로, 주소를 위,경도 숫자 값으로 바꿔 주거나(지오코딩), 반대로 위,경도 값을 사람이 읽을 수 있는 주소로 바꿔줍니다. (이를 역 지오코딩이라 합니다.) 예를 들어, 우리 지역에 있는 카페의 위치를 시각화 한다고 생각해 봅시다. 이 때, 카페 위치를 입력하기 위해서는 컴퓨터가 인식할 수 있도록 위도, 경도의 숫자 값이 필요합니다. 하지만 데이터에 문자 주소만 있다면 이를 바꿔주는 작업이 필요합니다. 이때 geopy를 사용하면 여러 지오코딩 서비스를 연결하여 사용할 수 있습니다. 이중에 OpenStreetMap을 사용하면 따로 api 키를 발급받지 않아도 위경도 변환이 가능합니다. geopy 설치 터미널에 pip install geopy 를 입력하여 설치해 줍니다. 지오코딩 주소 -> 위도, 경도 데이터준비 데이터는 공공데이터 포탈의 '강서구 커피샵 현황'을 사용해 보도록 하겠습니다. 커피샵현황 다운로드 다운받은 csv파일을 열어 주도록 하겠습니다. import pandas as pd df = pd.read_csv('서울특별시 강서구_카페 현황_20220210.csv',encoding='cp949') df.head() 이렇게 한글 도로명주소, 지번주소만 있는 것을 확인할 수 있습니다. 이 주소를 가지고 위도, 경도 값으로 변환해 보겠습니다. 그 전에 주소를 한 번 정리해 주어야 합니다. ( ) 안에 있는 상세 주소 또는 , 뒤에 있는 상세주소를 제거해 주어야 위도, 경도 변환 시 오류가 나지 않습니다. 전처리 데이터 프레임에 있는 도로명 주소, 지번 주소에서 동단위 로만 주소를 남겨 보겠습니다. 예) 서울특별시 강서구 000로 00 -> 000로 00 서울특별시 강서구 00동 000-00 -> 00동 000-0 함수를 하나 만들어 apply를 사용해 주소를 다듬어 준 후, 각각 새로운 열에 추출한 주소를 저장해 줍니다. #주소데이터 전처리