Python 17

[TIL] 로지스틱 회귀분석에서 오즈비 계산하기 # python # 부트캠프

부트캠프 프로젝트 - 구독 서비스 플랫폼 데이터 분석 프로젝트# 회귀계수에서 오즈비 계산odds_ratios = np.exp(result.params)# 오즈비 출력 odds_ratios_df = pd.DataFrame( { 'Feature': X.columns, 'Odds Ratio': odds_ratios })print(odds_ratios_df)[ 문제 상황 ]로지스틱 회귀분석 결과를 해석할 때 회귀 계수 만으로 해석하기 어렵다.[ 해결 ]오즈비를 통해 해석의 용이성을 챙길 수 있다.numpy 라이브러리에서 지수 함수 메서드인 np.exp() 를 통해 간단하게 오즈비를 구할 수 있다.로지스틱 회귀모델에서는 각 회귀계수가 로그 오즈(log-odds) 의 변화..

DA Study/TIL 2025.01.13

[TIL] apply()와 lambda 함수의 활용 # python # 부트캠프

부트캠프 프로젝트 - 구독 서비스 플랫폼 데이터 분석 프로젝트# 버튼 컬럼 하나로 병합df['b_name'] = df.apply( lambda row: row['a.name'] if pd.notnull(row['a.name']) else ( row['a_name'] if pd.notnull(row['a_name']) else '없음'), axis=1)df[ 문제 상황 ]데이터프레임에 a.name과 a_name 두 개의 컬럼이 있다.각 행에서 a.name과 a_name 중 하나 또는 둘 다 null일 수 있다. 두 컬럼의 값은 상호 배타적으로 존재하거나 모두 null일 수 있으며, 이를 기반으로 새로운 컬럼 b_name을 생성해야 한다.[ 논리 과정 ]새로운 컬럼을 생성한다.새로운 컬..

DA Study/TIL 2025.01.11

[TIL] 감정 분석 - 토큰별 Polarity 값 추가하기 #python3 #FC온라인

python3 - FC online 개인 프로젝트 #FC온라인 인벤 선수 리뷰 감정 분석👉 프로젝트 Github 바로가기Bad 코드 (시간이 지나치게 오래 걸림)# 토큰별 점수 산출하여 새로운 데이터 프레임으로 저장sentiment_df = pd.DataFrame(columns=('comment','sentiment'))for idx, token in enumerate(cleaned_token1): sentiment = int(word_dic.get(token,0)) sentiment_df.loc[idx] = [token, sentiment]Good 코드 (Inner Join 형식으로 Merge 하여 효율적인 연산)# 최종 토큰, 카운트, word_root, polarity 데이터 프레임으..

DA Study/TIL 2025.01.04

[TIL] 리스트 컴프리헨션(List Comprehension) #python3 #FConline

python3 - FC online 개인 프로젝트👉 프로젝트 Github 바로가기result_list = []for sentence in comment_list: okt_token = okt.pos(sentence) # 한국어, 숫자, 영어만 남기기 result = [] for token, pos in okt_token: if re.match('^[a-zA-Z가-힣]+', token): result.append((token,pos)) # 결과 리스트에 저장 result_list.append(result)# 1차원 리스트로 변환(flatten)tokens_list = [item for sublist in result_li..

DA Study/TIL 2025.01.02

[TIL] 동적 웹페이지 스크래핑, 크롤링하기 #python3 #FConline

python3 - FC online 개인 프로젝트👉 프로젝트 Github 바로가기# BeautifulSoup으로 스크래핑 시도했으나 실패res = requests.get(https://fifaonline4.inven.co.kr/dataninfo/player/?code=280200104)soup = BeautifulSoup(res.text, 'html.parser')soup.find_all('span.comment')# Selenium으로 성공(일단 테스트로 하나의 리뷰만 스크래핑comment = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'span.comment')))print(comment.text)[ 논리 과정 ]FC online 인벤에서 특정..

DA Study/TIL 2024.12.27

[Weekly Paper 1] 객체 지향 프로그래밍, 클래스, 인스턴스 / 정적 메소드

1) 객체 지향 프로그래밍(Object Oriented Pragramming): 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법. 쉽게 말하면 데이터와 처리방법으로 프로그램을 구성하는 것이 아닌, 다수의 "객체"를 만들어 이들 간의 서로 상호작용을 통해 프로그램을 만드는 방식객체 = 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 그룹 ex. FC온라인 게임객체 : 구단주데이터(속성) : 이름, 연령, 구단가치 등기능(행동) : login(), play_game(), sell_player() 등추상화 = 클래스를 설계하는 것 = 공통의 속성이나 기능을 묶어 이름을 붙이는 것2) 클래스와 인스턴스클래스객체 ..

[데이터 시각화] Matplotlib으로 데이터 시각화하기

데이터 시각화 심화 - Matplotlib파이썬에서 가장 기본적인 시각화 라이브러리로, 다양한 기능을 제공1) Matplotlib의 두 가지 인터페이스주요 동작 방식State-based 인터페이스필요한 명령어만으로 간결하게 그래프를 그릴 수 있는 방식현재 상태를 기반으로 동작을 추정해, 더 적은 코드로 그래프를 그림장점: 코드가 간결하고 빠르게 시각화할 수 있음Object-oriented 인터페이스그래프의 각 요소를 세부적으로 조정하며, 명확히 지시하는 방식더 복잡한 명령과 다중 그래프를 다루는 데 유리장점: 세밀한 제어가 가능하고, 여러 그래프를 명확하게 처리 가능두 인터페이스의 차이Object-oriented 방식: 먼저 캔버스를 생성한 후, 그 위에 그래프를 그리는 방식이름을 외우는 것이 아니라, ..