PYTHON 9

구매 영수증 데이터 전처리 (평균방문주기)

아래의 데이터는 한 매장의 고객이 6월 한달동안 물품을 구매한 날짜를 기록해둔 데이터(ex.영수증)이며 간략한 설명을 붙이자면 1번 고객은 22년 6월 1일에 1번의 구매를 하였고, 2일에는 2번, 3일에도 구매를 한 경우이며 10번 고객은 22년 6월 23일 1번만 물품을 구매하였다. 영수증 데이터를 분석하다 보면 이러한 형식의 데이터를 주로 볼 수 있을것이며 이러한 형식으로 데이터가 있으면 단점이 주말에 몇번오고 평일엔 몇번 왔는지 파악하기가 어렵다는 점이다. 따라서 전처리를 적절하게 해줘야 하는데 이 페이지에서 다뤄보도록하겠습니다. 추가적으로 이 고객이 몇일 간격으로 방문하는지 평균 방문주기도 구해보도록 하겠습니다 import pandas as pd from collections import Cou..

PYTHON 2022.09.19

[NLP③] 데이터 병합 및 INT화

저번에 수집했던 전처리한 데이터를 하나의 데이터 프레임으로 만든후 각 데이터를 비교해보이는 EDA를 시행해보겠습니다. import pandas as pd df1 = pd.read_csv('baecksansoo.csv') df2 = pd.read_csv('isis.csv') df3 = pd.read_csv('mongbest.csv') df4 = pd.read_csv('samdasoo.csv') df5 = pd.read_csv('seoksoo.csv') df6 = pd.read_csv('sparkle.csv') # unnamed :0 열이 생겨서 제거작업 df1.drop(['Unnamed: 0'], axis = 1, inplace = True) df2.drop(['Unnamed: 0'], axis = 1, ..

PYTHON 2022.07.04

[NLP②] 네이버 쇼핑 리뷰 전처리

이번에는 저번시간에 수집했던 리뷰데이터를 전처리 해보도록하겠습니다. 일반적인 전처리의 범위는 중복제거, 결측치 제거, 특수문자 제거 등이 있으며 리뷰를 의미있는 최소한의 단위로 쪼개서 품사를 태깅하는 행위를 형태소분석 및 토크나이징이라고 하는데 이건 다음 시간에 하도록 하고 이번에는 중복제거, 특수문자 제거 등의 처리를 해보겠습니다. 참고로 이 데이터는 저번시간에 수집한 네이버 쇼핑 리뷰를 사용하여 이어나가보도록 하겠습니다. df4=add_dataframe(name_,category_,reviews,stars,cnt) df4 df4.info() Int64Index: 2000 entries, 1 to 2000 Data columns (total 4 columns): # Column Non-Null Coun..

PYTHON 2022.06.26

[NLP①] 네이버 쇼핑 리뷰 크롤링 (생수)

이번에는 정형데이터가 아닌 비정형데이터를 분석하도록 하겠습니다. 분석하기 앞서 데이터를 직접 추출할건데 네이버 쇼핑에 판매하고 있는 삼다수 리뷰를 긁어 올것입니다. NLP 시리즈에서는 삼다수, 백산수, 석수, 몽베스트, 스파클, 아이시스 총 6가지의 브랜드의 데이터를 각각 2,000개씩 긁어와서 약 12,000개를 사용할 예정입니다. 네이버 쇼핑에서 제공하고 있는 리뷰는 네이버 쇼핑 자체에서 만들어진 리뷰가 아니라 "우물샵", "NS홈쇼핑", "장대리"등 다양한 인터넷 쇼핑몰에서 리뷰를 긁어오고 있는 형태입니다. from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup..

PYTHON 2022.06.19

[정규식] re 라이브러리

정규식이란 영어 소문자, 대문자, 한글등 자연어 처리를 하기 위해서 사용되는 개념으로 파이썬에서는 re 라이브러리를 이용해서 주로 처리한다 import re p = re.compile(r'[a-z]+') m=p.match("python") print(m) 이런식으로 소문자에 맞는 문자를 매칭시키거나 search, findall, finditer 4가지의 메서드를 사용할수있으며 각 기능은 다음과같다 Method 목적 match() 문자열의 처음부터 정규식과 매치되는지 조사한다. search() 문자열 전체를 검색하여 정규식과 매치되는지 조사한다. findall() 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려준다. finditer() 정규식과 매치되는 모든 문자열(substring)을 ..

PYTHON 2022.04.16

[PYTHON 기초] 가변인자 *변수명이란?

def profile(name, age, hob1,hob2,hob3): print("이름 : {0}\t 나이: {1}\t".format(name, age), end="") print(hob1,hob2,hob3) profile("홍길동",20,"독서","등산","낚시") 위와 같이 취미를 포함한 인적사항을 출력하는 함수를 정의한다고 하면 저렇게 표현할 수 있을 것이다. 하지만 사람에 따라서 흥미가 1개일수도 여러개일수도 있는데 그때마다 함수를 수정하기는 불편할것이다. 이때를 위해 만든게 바로 가변인자이다. def profile(name, age, *hobby): print("이름 : {0}\t 나이: {1}\t".format(name, age), end="") for hob in hobby: print(h..

PYTHON 2021.02.27

[PYTHON 기초] range vs randrange

문제를 풀던 도중 다음과 같이 에러가 떠서 range와 randrange의 특성에 대해서 알아보았다. randrange는 주어진범위 안에서 int형 숫자를 1개 추출하는것이고 range는 정수형태가 아니여서 int가 씌워지지도 않고 list로는 if 문에서 값의 크기를 비교할수가 없다. 따라서 정상적으로 문제를 풀면 다음과같다. from random import * cnt =0 for i in range(1,51): good_time=randrange(5,51) if 5

PYTHON 2021.02.27

[PYTHON 기초] random모듈 사용 (중복추첨, 중복불가추첨)

random 모듈을 사용하여 추첨을 하는문제( 중복당첨불가) range함수를 사용하여 1~10 정수를 입력해준다음 list 타입으로 바꿔서 4명을 뽑은다음 치킨당첨자 1명을 먼저 배정하고 커피당첨자 3명을 추첨한다. # 회원 10명중에서 치킨1명 , 커피3명 추첨하기(중복당첨불가) from random import * users=range(1,101) users=list(users) shuffle(users) print(users) winners= sample(users,4 ) print("치킨 당첨자 : {0}".format(winners[0])) print("커피당첨자: {0}".format(winners[1:])) 이렇게 하면 중복으로당첨이 불가능한데 중복으로 당첨이가능하게 하는 방법은 이런식으로 ..

PYTHON 2021.02.27

파이썬 기초공부 시작

내가 파이썬 공부를 시작하게 된 계기는 2020년 데이터청년캠퍼스 교육을 수료하면서 처음으로 PYTHON을 접했지만 그때는 짧고 굵게 공부했기때문에 뭐가뭔지 모르는 상태에서 휙휙 넘어갔다, 파이썬 기초내용부터 django를 이용하여 웹만드는거 데이터분석하는거 등등 배우는동안은 알찼지만 지금현재는 거의다 까먹고 기억이 가물가물한 상태이기때문에 취업준비를 하면서 기초를 다지기로 하였다. 교육받을때는 visual studio, docker를 이용한 주피터노트북을 사용해서 python을 사용하였고 지금은 별다른 설치가 필요없고 구글아이디만 있으면 사용가능한 colab을 사용하기로 하였다. 공부자료는 서점에서 다양한 파이썬책들을 봤지만 유튜브가 더 좋아보였다. 그중에서도 조코딩, 나도코딩 채널을 통하여 공부하기로..

PYTHON 2021.02.26