AI SCHOOL/Python 18

[Python] 코딩도장

1 - 2 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.) 예를들어 S={1, 3, 4, 8, 13, 17, 20} 이 주어졌다면, 결과값은 (3, 4)가 될 것이다. 문제 링크: https://codingdojang.com/scode/408 SS = [3, 4, 8, 13, 17, 20] 여도 (3, 4) 둘 사이 거리는 1 이니까 ! [답] s = [3, 4, 8, 13, 17, 20] m = float('inf') index = 0 for i in range(len(s) - 1): #1 if (m > s[i+1] - s[i]) : # 우리가 쓴 가장 큰 수보다 작으면 인덱스를 기억 #2 index = ..

AI SCHOOL/Python 2023.03.31

[Python] 비즈니스 데이터 분석(RFM)

RFM(Recency, Frequency, Monetary) - RFM은 가치있는 고객을 추출해내어 이를 기준으로 고객을 분류할 수 있는 방법 -> 마케팅에서 가장 많이 사용되고 있는 분석방법 중 하나 - RFM은 구매 가능성이 높은 고객을 선정하기 위한 데이터 분석 방법으로 이 과정을 통해 데이터는 의미있는 정보로 전환 Recency - 거래의 최근성: 고객이 얼마나 최근에 구입했는가? Frequency - 거래빈도: 고객이 얼마나 빈번하게 우리 상품을 구입했나? Monetary - 거래규모: 고객이 구입했던 총 금액은 어느 정도인가? - 현재 개발된 RFM 모형은 크게 4가지로 분류 가능 -> but, 정설은 아니며 신뢰하기 어려움을 전제로 참고 모델1. RFM 각 요소의 20% rule의 적용 모델..

AI SCHOOL/Python 2023.03.08

[Python] 비즈니스 데이터 분석(Online Retail Data Set)

비즈니스 데이터 분석 - 서비스의 특징에 따라 봐야하는 지표가 다르다. - 회원가입에 집중? 돈을 쓰는 고객에 집중? 신규 고객 유치에 집중? - 광고, 프로모션, 오프라인 행사 등 여러가지 마케팅을 실시 구독 서비스라면 이탈률이 중요한 지표 - ARPU(Average Revenue Per User, 앱 활동 사용자의 1인당 평균 결제 금액 = 매출 / 중복을 제외한 순수 활동 사용자 수) - ARPPU(Average Revenue Per Paying User, 유료 사용자 1인당 평균 결제 금액 = 매출 / 중복을 제외한 순수 유료 사용자 수) - MRR - ARR https://easytoread.tistory.com/entry/CAC-CPA-%EC%B0%A8%EC%9D%B4 【마케팅】 CAC, CP..

AI SCHOOL/Python 2023.03.07

[Python] 전국 신규 민간 아파트 분양가격 동향

- Tidy-data: 깔끔한 데이터(= 각 변수가 열이고, 관측치가 행이 되도록 배열된 데이터) - 데이터분석 위해서 데이터를 깔끔한 형태로 만들어주는 것이 중요 - 정리가 잘 된 데이터 ≠ 깔끔한 데이터 -> 국가통계데이터포털에서 제공하는 데이터(과거) -> pd.melt 사용 - 열에 있던 데이터를 행으로 녹인다 - 관측치가 행이고 변수가 열이 되는 것 - 깔끔한 데이터는 각 변수는 개별 열에, 각 관측치는 개별 행에, 관측 구성 요소 각각 값은 테이블 안에 위치 - id_vars는 변하지 않는 칼럼(기준 칼럼) - value_vars가 2개 이상 필요로 할 때는 id_vars 반복될 수 있음 -> melt되는 칼럼의 숫자가 늘어날수록 기준점은 그만큼 반복 할당 https://seong6496.ti..

AI SCHOOL/Python 2023.02.09

[Python] Plotly / FinanceDataReader

high-level interface : 사람에 더 가까운 -> 사람이 이해하기 더 쉬운 인터페이스, 복잡한 기능을 단순하게 만들어 놓은 인터페이스 / 추상화 그래프를 시각화 하기 위해서 어떤 정보를 API에 주어야 할까? (원래도 궁금했던 거임~) 1) 어떤 그래프로 시각화 할지 고른다 ex) 막대, 선, 산점도, 히스토그램 등 2) 어떤 데이터를 시각화 할지 API에 설정 3) x, y축을 설정 4) 제목, 그래프 크기, 범례, 서브플롯, 스타일 등을 설정 5) bar(data, x, y)와 유사한 API를 대부분 갖고 있음 Plotly 는? 파이썬의 대표적인 인터랙티브 시각화 도구 Plotly Python Graphing Library | Python | Plotly Financial Charts ..

AI SCHOOL/Python 2023.02.02

[Python] FinanceDataReader - 2

기간 수익률 비교하기 - 데이터프레임의 기준 첫날을 0으로 맞추고 상승했는지 하락했는지 구하기 - 다른 스케일 값의 상승/하락 비교 - 다른 스케일의 값을 조정할 때 표준화 혹은 정규화 방법 사용 표준화(standardization) : 데이터가 평균으로 부터 얼마나 떨어져 있는지 나타내는 값으로 변환 (Z-score 표준화) : (측정값 - 평균) / 표준편차 표준편차 공식이랑 같음~!! 정규화(normalization) : 데이터의 상대적 크기에 대한 영향을 줄이기 위해 0~1로 변환 (측정값 - 최소값) / (최대값 - 최소값) https://bskyvision.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%8D%B0%EC%9D%B4%ED%84%B0-%E..

AI SCHOOL/Python 2023.02.01

[Python] FinanceDataReader - 1

라이브러리 불러오기 import pandas as pd import numpy as np import matplotlib.pyplot as plt import FinanceDataReader as fdr 상장종목 목록 가져오기 url = "https://finance.naver.com/sise/entryJongmok.naver?&page=1" 이 url로 상위 10개 종목 불러오기 df_top10 = pd.read_html(url)[0].dropna() df_top10 전체 상장종목에서 종목 코드와 종목명만 가져오기 fdr.StockListing('KRX').head(3) df_krx = fdr.StockListing('KRX')[['Name', 'Code']] df_krx.head() merge를 통한..

AI SCHOOL/Python 2023.01.31

[Python] 서울 코로나 데이터 분석(EDA) - 2

타시도, 기타 전처리 # 공백 없애기 df['거주구'] = df['거주지'].str.strip() # 타시도 -> 기타 df['거주구'] = df['거주구'].str.replace('타시도', '기타') # 거주구 빈도수 구하기 gu_count = df['거주구'].value_counts() gu_count 변수에 담긴 값 시각화 하기 - 선 그래프: 연속된 데이터 시각화 - 막대 그래프: 범주형(끊어져 있는) 데이터 시각화 # r => red, b=> blue, k => black # h => horizontal 가로 # v => vertical 세로 gu_count.plot.bar() plt.axhline(5000, c="r", ls=":") plt.axvline(5, c="y", ls=":") 두 ..

AI SCHOOL/Python 2023.01.31

[Python] 서울 코로나 데이터 분석(EDA) - 1

서울시에서 코로나 확진자 데이터 제공 이력 처음에는 html 형식 1페이지로 제공 -> 데이터 많지 않았기 때문에 그 다음에는 여러 페이지 제공 API로 변경 API 페이징 추가 요약된 데이터만 제공 => 스타트업에서 서비스 운영하는 것과 비슷 : 처음부터 잘 만들어진 서비스를 제공하기 어렵고, 상황이 어떻게 변화할지 예측하기 어렵게 때문에 서비스를 하면서 프로덕트를 보완해 나간다. 데이터 시각화 도구 라이브러리 로드 # pandas, numpy, matplotlib.pyplot 불러오기 import pandas as pd import numpy as np import matplotlib.pyplot as plt pandas : 분석 numpy : 다차원 연산 pyplot : 시각화 matplotlib ..

AI SCHOOL/Python 2023.01.30

[Python] Open API 사용하여 서울시 다산 콜센터 자주 묻는 질문 목록 데이터 수집

API 사용 이유 - 허락된 사람에게만 정보를 제공하고 누가 수집해 갔는지 알기 위해 = 유료로 데이터를 판매하고 있는 사이트는 데이터 용량 등에 따라 과금 - 공공데이터는 실시간성으로 제공하고자 하는 데이터의 경우 예) 부동산실거래가 정보 등 - 특정 사이트에 무리하게 네트워크 요청을 보내면 서버에 무리가 갈 수 있 예) 만약에 50명이 특정 카페24의 작은 쇼핑몰에 요청을 한번에 보내면 서버를 다운시킬 수도 있음 API용 서버를 따로 두게 되면 데이터를 무리하게 읽어 갔을 때 운영하고 있는 서비스의 서버에 무리가 가지 않게 분리해서 운영할 수 있습니다. 네이버, 카카오, 유튜브 등은 API를 따로 제공 Web Scraping vs API - 웹 스크래핑은 브라우저에 보여지는 정보를 사용자가 자동화된 ..

AI SCHOOL/Python 2023.01.24