본문 바로가기

데이터분석46

파이썬 퀀트투자(1): 최근 영업일 기준 데이터 크롤링 파이썬 퀀트투자 시리즈는 '헨리의 퀀트대학' 유튜브 및 깃허브를 운영하는 이현열 작가님의 코딩과 그리고 '할 수 있다! 알고 투자' 유튜브 채널을 운영하는 강환국 작가님의 (한국)성장 가치, 소형주 전략을 합쳐서 제작하게 된 시리즈입니다.  (한국)성장 가치, 소형주 전략은 아래와 같은 비중으로 투자하는 전략입니다. 미국 주식의 경우 켄 피셔 대형주 전략을 쓰지 않고, S&P500에만 투자해도 백테스트 결과 크게 차이가 없는걸로 나타났습니다. 그래서 여기서는 (미국)켄 피셔 대형주 전략은 제외할 예정입니다.   이 전략으로 한달에 한 번씩 한국의 성장 가치, 소형주 종목을 20개 선정하고, 매달 비율에 맞춰서 리벨런싱 하는 과정까지 진행해보겠습니다. 최근 영업일 기준 데이터 크롤링네이버 금융의 [국내증시.. 2024. 10. 9.
[Python] Pandas : Dataframe 함수 - melt() 데이터 분석이나 시각화 작업을 하다 보면 데이터를 변환해야 할 때가 많습니다. 그중 가장 많이 사용하는 변환 중 하나가 데이터를 넓은 형식(wide format)에서 긴 형식(long format)으로 바꾸는 작업입니다. Pandas의 melt() 함수는 바로 이러한 변환을 쉽게 해주는 도구입니다. 이번 포스트에서는 melt() 함수의 기본 사용법부터 다양한 옵션을 살펴보겠습니다. 1. melt() 함수란?melt() 함수는 넓은 형식의 데이터를 긴 형식으로 변환하는 함수입니다. 예를 들어, 여러 개의 열(column)로 구분된 데이터를 하나의 열로 병합하고, 병합된 값을 기준으로 데이터 프레임을 재구성할 수 있습니다. 이를 통해 시각화나 분석에 더 적합한 형태로 데이터를 변형할 수 있습니다. 넓은 형식.. 2024. 9. 29.
[Python] Pandas : Dataframe 함수 - pivot() vs pivot_table() Ppivot()과 pivot_table() 함수는 엑셀의 피벗테이블과 같은 기능을 제공하는 함수입니다. 두 함수는 매우 유사해 보이지만, 실제로는 용도와 기능에서 몇 가지 중요한 차이점이 있습니다. 이번 포스트에서는 이 두 함수의 사용법과 차이점을 살펴보겠습니다. 1. Pandas pivot() 함수pivot() 함수는 데이터를 재구성하여 열 값을 인덱스로, 열로, 값으로 변환합니다. 이는 고정된 값들에 대해 단순한 피벗을 만들 때 사용됩니다. pivot() 함수 문법DataFrame.pivot(index=None, columns=None, values=None) index: 새로 설정할 인덱스. 기존의 열 이름을 지정합니다.columns: 열로 사용할 데이터. 피벗 테이블의 새로운 컬럼으로 변환됩니다... 2024. 9. 29.
[Python] Pandas : Dataframe 함수 - concat() 이 블로그에서는 데이터를 병합할 때 사용하는 pandas의 concat() 함수를 다양한 상황에서 어떻게 활용할 수 있는지 살펴보겠습니다.   1. concat() 함수란?concat() 함수는 pandas 라이브러리에서 제공하는 함수로, 여러 데이터프레임이나 시리즈를 행(row) 또는 열(column) 기준으로 병합할 때 사용됩니다. 이 함수는 같은 구조를 가진 데이터를 연결하여 하나의 데이터프레임으로 만드는 데 자주 사용됩니다.함수 형태import pandas as pdpd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False,.. 2024. 9. 29.
[해커랭크] SQL 심화 응용 팁들 1. SELECT 서비스쿼리에서 where 조건으로 필터링https://www.hackerrank.com/challenges/the-company/problem?isFullScreen=true select a.company_code, a.founder,(select count(distinct lead_manager_code) from lead_manager where company_code = a.company_code),(select count(distinct senior_manager_code) from senior_manager where company_code = a.company_code),(select count(distinct manager_code) from manager where com.. 2024. 9. 24.
[Python] Pandas : Dataframe 함수 - merge() 데이터 분석을 하다 보면, 여러 개의 데이터프레임을 결합해야 하는 경우가 자주 발생합니다. Pandas의 merge() 함수는 이런 작업을 수행할 때 매우 유용한 도구입니다. 이 글에서는 merge() 함수의 사용법과 다양한 옵션들을 예시와 함께 자세히 설명하겠습니다. 1. 기본 사용법, on 매개변수merge() 함수는 SQL의 JOIN 연산과 유사한 방식으로 두 개의 데이터프레임을 합칠 수 있습니다. 기본적인 사용법은 다음과 같습니다:import pandas as pd# 예제 데이터프레임 생성df1 = pd.DataFrame({ 'key': ['A', 'B', 'C', 'D'], 'value1': [1, 2, 3, 4]})df2 = pd.DataFrame({ 'key': ['B', '.. 2024. 8. 16.
[Python] Pandas : DataFrame 함수 - loc, iloc 이 블로그 포스트에서는 pandas의 인덱싱 기능인 loc과 iloc에 대해 깊이 있게 다룹니다. loc과 iloc의 차이점, 사용 방법, 그리고 실제 데이터 분석 작업에서 어떻게 활용할 수 있는지에 대한 다양한 예시를 제공합니다. loc과 iloc 설명loc: "label-based location"의 약자입니다. 이 명칭에서 알 수 있듯이, loc은 데이터프레임에서 라벨(label), 즉 행과 열의 이름을 기반으로 데이터를 선택하는 방식입니다. loc은 DataFrame의 행과 열을 라벨을 통해 접근할 때 사용됩니다. 기본적인 문법은 다음과 같습니다.df.loc[row_label, column_label]iloc: "integer location"의 약자입니다. iloc은 정수 인덱스(integer .. 2024. 8. 11.
[Python] Pandas : Dataframe 함수 - groupby() 사용법 이 글에서는 python의 대표적인 데이터 관련 함수인 groupby의 원리, 사용법에 대해서 알아보겠습니다. 대표적으로 사용하는 인자와 집계 함수의 종류와 예시도 살펴보겠습니다.  groupby 함수는 데이터프레임을 그룹으로 분할하고 각 그룹에 대해 연산을 적용할 수 있습니다. SQL의 GROUP BY와 똑같은 기능을 합니다. 이 함수는 데이터를 그룹화하고 그룹화된 데이터를 다양한 방법으로 분석하고 처리하는 데 사용됩니다. groupby 함수의 작동 방식은 아래와 같이 분할 -> 적용 -> 결합 단계를 거치게 됩니다.분할(Splitting):groupby 함수는 데이터프레임을 기준 열(또는 열의 리스트)에 따라 그룹으로 분할합니다.이 기준 열의 값에 따라 데이터가 여러 그룹으로 나뉩니다.적용(Apply.. 2024. 7. 27.
[Python] Pandas : Dataframe 함수 - reset_index() reset_index() 함수는 Pandas 라이브러리에서 사용되는 함수로, 데이터프레임의 인덱스를 초기화하거나 재설정하는 데 사용됩니다. 이 함수는 인덱스를 리셋하고, 기존 인덱스를 데이터프레임의 열로 변환할 수 있는 다양한 옵션을 제공합니다. reset_index() 함수의 주요 기능과 사용법을 설명하겠습니다. 기본 사용법기본적으로 reset_index() 함수는 데이터프레임의 인덱스를 기본 숫자 인덱스로 재설정합니다.import pandas as pd# 예제 데이터프레임 생성data = { 'A': [1, 2, 3], 'B': [4, 5, 6]}df = pd.DataFrame(data, index=['a', 'b', 'c'])print("Original DataFrame:")print(d.. 2024. 6. 9.
[Python] Pandas : Dataframe 함수 - replace() pandas 라이브러리에서 DataFrame의 특정 열의 값을 다른 값으로 대체하기 위해 replace() 메서드를 사용할 수 있습니다. df['A'].replace()는 DataFrame df의 'A' 열에 대한 대체 작업을 수행합니다. replace() 메서드의 문법은 다음과 같습니다: DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')  여기서 df['A']에 대해서 replace()를 사용할 때 주로 사용되는 인수는 to_replace, value, inplace입니다. 예제는 이들을 중심으로 설명하겠습니다. 주요 인수to_replace: 교체하려는 값입니다. 단일 값,.. 2024. 6. 9.
A/B 테스트를 통계적으로 신뢰할 수 있게 하기 위한 사전 작업들 A/B 테스트를 진행할 때, A그룹과 B그룹의 조건이 동일하지 않다면 실험 결과를 신뢰할 수 있을까? 또한, 실험 대상의 양이 너무 작다면? 실험 결과의 차이가 미미하다면? 이 글에서는 A/B테스트 결과를 신뢰할 수 있는 방법에 대해서 알아볼 것이다. 왜 A/B테스트를 하는가? 현실 세계에서 한정된 자원으로 새로운 아이템의 효과를 검증하기 위한 가장 좋은 방법이기 때문이다. 사례) 오바마 대선 캠프 가족의 모습이 담긴 이미지와 LEARN MORE 버튼은 기존 안 대비 각각 18.6%, 13.1%의 가입률 증가를 보였으며 두 아이템을 조합한 페이지의 경우 40.6% 가입률 증가 여기 A/B 테스트의 더 다양한 성공 사례가 있다. UX/UI 디자이너가 새로운 앱 디자인을 만들었다고 가정해보자. 이 UI를 새.. 2024. 4. 14.
BeautifulSoup을 이용한 정적 크롤링 개념 정리 및 실습 해당 글에서는 BeautifulSoup을 사용해서 정적 크롤링을 하는 방법에 대해서 알아본다. 크롤링 실습을 하기 전에 기본적인 웹 동작 원리에 대해서 알아야 하기 때문에 이론 적인 부분 먼저 설명한다. 대표적인 get과 post 방식 크롤링을 실습한다. 웹 동작 원리 크롤링은 웹사이트의 정보를 수집하는 과정이다. 따라서 웹이 어떻게 동작하는지 이해할 필요가 있다. 클라이언트란 데스크톱이나 휴대폰과 같은 장치이다. 혹은 크롬이나 파이어폭스와 같은 소프트웨어를 의미한다. 서버는 웹사이트와 앱을 저장하는 컴퓨터를 의미한다. 클라이언트가 특정 정보를 요구하는 과정을 요청(Request)이라고 하며, 서버가 해당 정보를 제공하는 과정을 응답(Response)이라고 한다. 클라이언트와 서버가 연결되어있지 않다면 .. 2024. 3. 15.