반응형

pandas 19

pandas DataFrame 에서 loc, iloc 사용

pandas는 Series, DataFrame 두개를 중심으로 데이터를 다룬다. 그 중 DataFrame에서 주로 사용하는 명령을 먼저 간단히 정리해 본 다음, loc와 iloc를 알아볼 것이다. 먼저 라이브러리를 읽어들인다. import pandas as pd import numpy as np 그 다음 사용할 데이터를 DataFrame 데이터 유형으로 만든다. dates = pd.date_range('2023-09-01', periods=6) df = pd.DataFrame(np.random.randn(6,5), index = dates, columns=['A', 'B', 'C', 'D', 'E']) df head() 명령을 사용하면 기본적으로 첫 5행을 보여준다. 괄호에 숫자를 기입하면 그 숫자만큼 ..

투자 의사결정과 AI - 바이앤홀드 전략

컴퓨터 비전이나 텍스트 분석은 성능 좋은 오픈 API나 노하우가 축적되고 공유되어 빠르게 발전하고 있다. 하지만 투자 업계에서는 금융 데이터를 손쉽게 처리해주는 판다스 같은 라이브러리가 있어도, 성능 좋은 알고리즘이나 방법론이 공유되는 경우가 거의 없다. 세계 경제가 긴밀하게 연동하고 경제 주체들의 투자 패턴이 다양해짐에 따라 고려해야 할 변수가 기하급수적으로 증가한 반면 시계열 데이터를 기본으로 한 투자 데이터는 그 양이 한정적이다. 애널리스트 분석에 자주 사용되는 OECD 경기선행지수, 국가별 GDP, 금리 자료 등은 업데이트 주기가 길다. 이러한 데이터의 한계로 인해 좋은 모델을 만들기가 어렵다고 한다. 금융은 자본주의 사회에서 우리의 삶에 깊숙이 침투하여 개인의 일상생활과 밀접한 관계를 맺고 있고..

데이터 정제(Data Cleaning)와 정규화(Normalizing) : 사이킷런(Scikit-learn) 기초

머신러닝에 있어, 가장 먼저해야 하는 일 중 하나가 데이터 정제(Data Cleaning)입니다. 왜냐하면 바로 모델을 훈련할 수 있는 데이터셋을 확보하는 것이 실제로는 매우 어렵기 때문입니다. 따라서, 결측값(NaN)은 없는지, 이상치(outlier)는 없는지 알아보기 위해 데이터셋을 주의깊게 살펴보아야 합니다. 값이 큰 열이 있는 경우 정규화를 통한 보정이 필요하기도 합니다. 이번에는 데이터 정제(Data Cleaning)에 필요한 일반적인 작업에 대해 알아보도록 하겠습니다. 결측값(NaN)이 있는 열 정제하기 다음 데이터로 된 NaNDataset.csv 파일이 있다고 가정하겠습니다. 눈으로 봐도 몇개 열에 결측값이 있는 것을 확인할 수 있습니다. 작은 데이터셋에서는, 쉽게 결측값을 찾을 수 있습니다..

데이터셋 획득 : 사이킷런(Scikit-learn) 기초

Scikit-learn 라이브러리는 파이썬에서 가장 유명한 머신러닝 라이브러리 중 하나로, 분류(classification), 회귀(regression), 군집화(clustering), 의사결정 트리(decision tree) 등의 다양한 머신러닝 알고리즘을 적용할 수 있는 함수들을 제공합니다. 이번에는 머신러닝 수행 방법을 알아보기 전에, 다양한 샘플 데이터를 확보할 수 있는 방법들을 알아보려고 합니다. 데이터셋(Datasets) 얻기 머신러닝을 시작할 때, 간단하게 데이터셋을 얻어서 알고리즘을 테스트해 보는 것이 머신러닝을 이해하는데 있어 매우 유용합니다. 간단한 데이터셋으로 원리를 이해한 후, 실제 생활에서 얻을 수 있는 더 큰 데이터셋을 가지고 작업하는 것이 좋습니다. 우선 머신러닝을 연습하기 위..

데이터 삭제 (Pandas 레시피)

이번에는 pandas에서 데이터를 삭제하는 방법에 대해 알아보고자 합니다. 1. pandas, numpy 라이브러리를 불러들입니다. >>> import pandas as pd >>> numpy as np 2. 다음 주소에서 데이터셋을 읽어들입니다. >>> url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data' 3. 읽어들인 데이터셋을 wine 변수에 저장합니다. >>> wine = pd.read_csv(url) >>> wine.head() 4. 컬럼들 중에서 첫번째, 네번째, 일곱번째, 아홉번째, 열두번째, 열세번째, 열네번째 컬럼을 삭제합니다. >>> wine = wine.drop(wine.columns[[0, 3..

시각화-visualization (Pandas 레시피)

1. pandas, numpy, matplotlib, seaborn 등 필요한 라이브러리를 읽어들입니다. >>> import pandas as pd >>> import numpy as np >>> import matplotlib.pyplot as plt # 파이썬에서 시각화를 처리하는데 필요한 대표적인 라이브러리로 생각하면 됩니다. >>> import seaborn as sns # matplotlib를 바탕으로 해서 시각화를 더 멋지게 만들어줍니다. % matplotlib inline # jupyter notebook(쥬피터 노트북) 내에서 그래프를 보여주도록 해줍니다. sns.set(style='ticks') # 더 나은 스타일로 그래프를 보여주도록 seaborn을 설정합니다. 2. 다음 주소에서 데이..

데이터셋 기본 통계-Stats(Pandas 레시피)

판다스(Pandas)의 기능 중 데이터셋으로 기본적인 통계작업을 하는 명령어들을 알아보도록 합니다. 1. pandas 및 datetime 라이브러리를 읽어들입니다. >>> import pandas as pd >>> import datetime 2. data_url 변수에 다음 주소를 저장합니다. >>> data_url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/06_Stats/Wind_Stats/wind.data' 3. pandas로 위 주소를 data 변수로 읽어들이되, 처음 3개 컬럼을 datetime 인덱스로 대체합니다. >>> data = pd.read_table(data_url, sep = '\s+', pars..

데이터셋 병합하기-merge(Pandas 레시피)

1. pandas 라이브러리를 읽어들입니다. >>> import pandas as pd 2. 다음 데이터로 3개의 딕셔너리 데이터셋을 만듭니다. >>> raw_data_1 = { 'subject_id' : ['1', '2', '3', '4', '5'], 'first_name' : ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'last_name' : ['Anderson', 'Ackerman', 'Ali', 'Aoni', 'Atiches']} >>> raw_data_2 = {'subject_id' : ['4', '5', '6', '7', '8'], 'first_name' : ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'last_nam..

커스텀 함수 적용하기-apply(Pandas 레시피)

1. pandas 및 numpy 라이브러리를 읽어들입니다. >>> import pandas as pd >>> import numpy as np 2. csv_url이라는 변수에 http 주소를 저장합니다. >>> csv_url = 'https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/04_Apply/Students_Alcohol_Consumption/student-mat.csv' 3. 아래 주소에서 데이터셋을 읽어들이고, df이라는 변수에 할당합니다. >>> df = pd.read_csv(csv_url) >>> df.head() # df의 데이터셋의 구조를 알기 위해 상위 열(5)을 조회합니다. 4. 이 데이터프레임에서 'school'..

데이터셋 그룹화-GroupBy (Pandas 레시피)

1. pandas 라이브러리를 읽어들입니다. >>> import pandas as pd 2. 아래 주소에서 데이터셋을 읽어들이고, drinks라는 변수에 할당합니다. >>> drinks = pd.read_csv('https://raw.githubusercontent.com/justmarkham/DAT8/master/data/drinks.csv') >>> drinks.head() # drinks의 데이터셋의 구조를 알기 위해 상위 열(5)을 조회합니다. 3. 어느 대륙에서 평균보다 맥주를 더 많이 마시는가? >>> drinks.groupby('continent').beer_servings.mean() # groupby를 사용해서, 대륙별 맥주 소비량 평균을 계산합니다 4. 각 대륙별 와인 소비 현황을 파악..

반응형