전체 글 52

데이터분석- 피벗테이블활용과 .pkl로 저장하기

데이터프레임 한개를 두개로 나눠서 분석한뒤 다시 하나로 합쳐서.pkl로 저장하려 한다.  # 데이터프레임에서 중복행을 제거하기 : df.drop_duplicates()vars = ['단지코드', '총세대수', '지역', '준공연도', '건물형태', '난방방식', '승강기설치여부', '실차량수']data01 = data0[vars].copy()data01 = data01.drop_duplicates()data01.head() vars2 = ['단지코드', '전용면적별세대수','전용면적', '공급면적(공용)','임대보증금','임대료']data02 = data0[vars2].copy()data02.head()  vars와 vars2로 나누고 data01과 data02로 저장한다. temp = data02.lo..

카테고리 없음 2024.10.10

셀트리온 뷰티몰에서 데이터 크롤링 하기 (정적페이지)

best 상품 데이터 40개 수집https://www.celltrionbeauty.com/main/best-items상품 이미지 40개 수집 import requestsimport pandas as pdfrom bs4 import BeautifulSoup  # 찾아낸 urlurl = 'https://www.celltrionbeauty.com/main/best-items'# request > responseresponse = requests.get(url)response  # make BeautifulSoup Objectdom = BeautifulSoup(response.text, 'html.parser')type(dom)# find item list css selectorselector = '#produ..

카테고리 없음 2024.10.05

네이버 증권 크롤링하기

네이버 증권 사이트에서 주가 데이터를 수집해보자- 수집할 데이터 : 일별 kospi, kosdaq 주가, 일별 환율(exchange rate) 데이터 네이버 증권은 pc웹페이지는 복잡한데 모바일은 깔끔하다https://m.stock.naver.com 네이버페이 증권관심종목의 실시간 주가를 가장 빠르게 확인하는 곳m.stock.naver.com  여기서 데이터받아올 url 을 보는 방법은(크롬 기준)1. F12 클릭해서 개발자 창 보기2. 네트워크로 들어가기3. 네트워크 로그 초기화 (좌측 상단에 빨간색 정지버튼 옆에 버튼 있음)4. 알고싶은 정보 화면에서 더보기 클릭5. 개발자 창에서 price 관련 로그 확인6. 그 url 복사 (보통 api 어쩌구 되어있음 )  import requestsimport..

카테고리 없음 2024.10.03

데이터분석하기 범주형과 범주형, 숫자와 범주 일때.

범주형 두개의 데이터를 분석하는 방법을 알아보는 방법을 알아보자~ 예를들어, 성별에따른 퇴사 여부 , 혈액형별 mbti i형인지 e 형인지 등...   첫번째 교차표로 집계하기 교차표 시각화 코드#첫번째가 행, 두번째가 열pd.crosstab(data[target], data[feature])#normalize = columns 로 하면 컬럼별 퍼센트를 구해준다pd.crosstab(data[target], data[feature], normalize = 'columns')  이런식으로 출력된다.   교차표로 부터 모자이크 플롯으로 시각화 하기 모자이크 플롯은 범주별로 양과 비율을 나타낸다. mosaic(titanic, [ 'Pclass','Survived'])plt.axhline(1- titanic['S..

카테고리 없음 2024.10.01

데이터 분석방법 - 범주형 -> 연속형 일때

가설 x-> y 일때 x:범주형, y:연속형 이면 시각화 방법은 평균비교 barplot, 수치화는 T검정과 분산분석 방법을 사용해서 분석한다.  # barplot 그리기# data에 데이터프레임 이름sns.barplot(x="Survived", y="Age", data=titanic)plt.grid()plt.show()   이런 형태로 출력된다. 가운데 까만 선은 95% 신뢰구간을 나타내고, 그래프는 평균을 나타낸다.0~30 까지의 나이만 있다는 그래프가아니라 30즘의 나이가 평균이라고 나타낸다.즉, 신뢰구간(까만선)은 짧고 겹치지 않을수록, 평균의 차이가 클수록 대립 가설이 맞다고 해석한다.     boxplot으로 볼수도 있지만 대부분 많이 쓰진 않는다.sns.boxplot(x='Survived', ..

카테고리 없음 2024.09.28

데이터 분석 하기

데이터 분석을 위한 흐름을 살펴보면 Business Understanding - 가설 수립 -> Data Understanding 데이터 이해 -> 데이터준비 -> 모델링 순으로 이루어진다.  가설 수립 절차 해결해야 할 문제를 정의하고 (y)그 문제를 설명하기 위한 요인(x)을 찾는거다 그러면 x -> y 가 되는데 이게 가설이다  데이터 분석 도구EDA, CDA 두개가 있다.  ▪ EDA (Exploratory Data Analysis)• 개별 데이터의 분포, 가설이 맞는지 파악• NA, 이상치 파악  ▪ CDA (Confirmatory Data Analysis)• - 탐색으로 파악하기 애매한 정보는 통계적 분석 도구(가설 검정) 사용  데이터 준비 준비할 데이터는 모든 셀에 값이 있어야 하고,(nu..

카테고리 없음 2024.09.27

데이터프레임 메소드 정리2

저번에 1편에 이어 더 해야겠다!!! 정렬 - 인덱스를 기준으로 정렬하는 방법과 특정 열을 기준으로 정렬하는 방법이 있다.sort_values() 메서드로 특정 열을 기준으로 정렬합니다.ascending 옵션을 설정해 오름차순, 내림차순을 설정할 수 있습니다.ascending=True: 오름차순 정렬(기본값)ascending=False: 내림차순 정렬  # 단일 열 정렬tip.sort_values(by='total_bill', ascending=False)# 복합 열 정렬tip.sort_values(by=['total_bill', 'tip'], ascending=[False, False])   기본 집계- 고윳값, 최빈값, 합, 평균, 최댓값, 최솟값 등을 확인하는 방법 # day 열 고윳값 확인tip[..

데이터프레임 변경하기

데이터 분석을하기 위해서 전처리 과정이 꼭 필요하다.전처리 과정중 꼭 알아야하는 데이터프레임 변경하는법을 알아보자..    ~목차~열 이름 변경열 추가열 삭제범주값 변경범주값 만들기결측치 찾기결측치 제거결측치 채우기가변수(Dummy Variable) 만들기1. 열 이름 변경 일부만 선택해서 변경하는 방법과 한번에 모두 바꾸는 방법이 있다. (1) 선택해서 변경하기 - rename() 사용하기tip.rename(columns={'바꾸고싶은 열 이름' : '바꿀 열 이름', '바꾸고싶은 열 이름2' : '바꿀 열 이름'}, inplace = True)이런식으로 사용한다. inplace를 True로 해야 반영된다.   (2) 한번에 모두 바꾸고 싶을때tip.columns = ..

데이터프레임 간단한 메소드 정리

데이터프레임관련 여러 메소드와 옵션, 속성 몇가지를 알아보자.. ~목차~head(): 상위 데이터 확인tail(): 하위 데이터 확인shape: 데이터프레임 크기index: 인덱스 정보 확인values: 값 정보 확인columns: 열 정보 확인dtypes: 열 자료형 확인info(): 열에 대한 상세한 정보 확인describe(): 기술통계정보 확인  head() 와 tail()은 전장에서 했음으로 생략하겟다.   크기확인 속성 - 데이터 양을 확인df.shape 이렇게 데이터프레임명 뒤에 .shape를 입력하면 (rows, cols) 값을 갖는 튜플 형태로 출력되어 확인가능하다.    열, 행 정보 보기 - 인덱스 확인df.index .index를 입력하면 처음인덱스와 마지막 인덱스를 확인할 수 있고..

1. 암호찾기

문제:A 회사 총무부서가 분주합니다. 중요한 파일이 모두 들어있는 컴퓨터의 비밀번호를 까먹었기 때문입니다. 다행히 책상에는 전임자가 놓고간 힌트가 담긴 쪽지가 놓여있습니다. 쪽지의 내용은 이러합니다.'비밀번호는 쉴새없이 변하며, 컴퓨터 화면에는 매 번 일련의 문자들이 주어집니다. 단 컴퓨터 화면에서 알파벳 c까지의 알파벳 문자열이 비밀번호입니다.' 입출력 예 입력 #1 s a d k f a s c a s d 입력 #2 s a p o a c a s o출력 #1 s a d k f a s c 출력 #2 s a p o a c def findPass(a): result = [] a_list = a.split() for i in a_list: result.append(i) ..

알고리즘 2024.09.18