기본 콘텐츠로 건너뛰기

[python] matplotlib으로 그래프 만들기- 다변량그래프+3d, 밀집도그래프, 육각그래프, 패턴, 텍스트 설정까지

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
최근 글

[python] matplotlib으로 그래프 만들기- 히스토그램, 산점도, 박스그래프, 파이그래프

Matplotlib이란? matplotlib은 python에서 데이터 시각화를 도와주는 라이브러리입니다. 그럼 matplotlib을 이용해 다양한 종류의 그래프를 바로 그려 보도록 하겠습니다. 데이터 준비 오늘 시각화할 데이터는 kaggle의 'Customer Personality Analysis' Datasets를 이용하여 그래프를 시각화 해보겠습니다. 아래의 링크에서 csv파일을 다운받아 주세요. https://www.kaggle.com/imakash3011/customer-personality-analysis 이 데이터는 한 회사 고객들의 구매 정보 및 고객 정보등을 포함하고 있습니다. 각 열의 내용은 아래와 같습니다. People ID : Customer's unique identifier (고객식별id) Year_Birth : Customer's birth year (출생년도) Education : Customer's education level (학력) Marital_Status : Customer's marital status (결혼상태) Income : Customer's yearly household income (수입) Kidhome : Number of children in customer's household (자녀 수) Teenhome : Number of teenagers in customer's household (10대 자녀 수) Dt_Customer : Date of customer's enrollment with the company (회원가입날짜) Recency : Number of days since customer's last purchase (마지막구매 후 경과일자) Complain : 1 if the customer complained in the last 2 years, 0 otherwise (지난 2년간 컴플레인 여부) Products

[python] geopy를 사용하여 주소를 위,경도 값으로 바꾸기 & 위,경도 값을 주소로 바꾸기

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를 사용해 주소를 다듬어 준 후, 각각 새로운 열에 추출한 주소를 저장해 줍니다. #주소데이터 전처리

[python] pandas Apply를 사용하여 함수를 한번에 적용하기

Apply 종종 pandas로 csv 파일을 열어 dataframe을 만들 때,  각 행을 계산한다던가, 열을 계산하여야 할 때가 있습니다. 이때 pandas 의 apply 메서드를 사용하면 만들어 둔 함수를 간편하게 적용하여 계산이 가능합니다. 데이터 준비 데이터는 kaggle의 Lemonade-Orange-stand 를 사용해 보겠습니다. 이 데이터는 각 날짜의 레몬, 오렌지 에이드 판매량을 보여주는 데이터셋입니다. 링크를 들어가서   Lemonade2016-2.csv 파일을 다운받아 줍니다. 그 후 csv파일을 아래와 같이 열어 줍니다. import pandas as pd df = pd.read_csv('Lemonade2016-2.csv') df   각 컬럼의 의미는 다음과 같습니다. Date: 날짜 Location: 판매장소(공원/해변가) Lemon: 레몬에이드 판매량(잔) Orange: 오렌지에이드 판매량(잔) Temperature: 기온(화씨/ºF) Leaflets: 배포한 전단지 수 Price: 가격($) Series에서 apply 적용하기 1개의 인자를 전달받는 함수 현재 df에 있는 temperature은 화씨온도로 한국에서 쓰는 섭씨온도랑 단위가 다릅니다. 때문에 온도를 이해하기 쉽게 섭씨 온도로 바꿔주는 작업을 해보도록 하겠습니다. 화씨온도에서 섭씨온도로 변환하는 식은 아래와 같습니다. ºF(화씨) -> ºC(섭씨) °C = (°F−32)×5/9 이것을 'to_C'라는 함수로 만들어 보겠습니다. #화씨->섭씨 함수 # (temperature - 32) * 5 / 9 def to_C(x): C = (x - 32) * 5 / 9 # 소수 셋째자리에서 반올림 C = round(C,2) return C   그리고 df에서 따로 날짜컬럼만 빼어서 apply 함수 적용 후 새로운 df열에 할당해 주도록 하겠습니다. # 기온(temperature)을 섭씨(ºC)로 변환 temp

Hello blogspot!

  Blogspot 시작합니다! 안녕하세요.  이번에 Blogspot에서도 기술블로그를 시작하게 되었습니다. 많은 사람들에게 유용한 정보가 되는 글을 많이 올리고 싶습니다. 주로 python관련한 게시물이 올라올 예정입니다. 성장하는 블로거가 되겠습니다. print("Hello Blogspot!") Hello Blogspot! [기타 사이트 안내] - tistory 블로그 - github