EXPANSION OF THINKING IN INVESTMENT

투자에 대한 생각의 확장

CODING/PYTHON

[Python] 2주차_손쉽게 다루는 해외주식(1편) (Feat. 스파르타코딩클럽)

메타닷 2022. 12. 1. 15:46
728x90
반응형

 

2주차에서는 해외주식 데이터 분석기초와

해외주식 다루기에 대한 내용을 배워보았다. 

 

1편에서는 Pandas 기초와 엑셀 가져오기,

그리고 Pandas 실전에 대해 공부한 내용을 정리해보도록 하겠다. 

 

 

1. Pandas 기초

1) Pandas 라이브러리 설치 및 실행

  - pandas와 numpy를 설치한다. 

  - import pandas as pd는 pandas를 pd 라고 불러서 사용한다는 의미고, 
  - import numpy as np는 numpy를 np 라고 불러서 사용한다는 의미다. 

  - pandas를 쓸 때, numpy도 종종 함께 쓰일 일이 있기 때문에, 같이 불러온다. 

[pandas와 numpy 설치 및 import]

 

2) 기본 DataFrame 만들기

  - 아래와 같이 data = { 'name' : ['영수','철수','영희','소희'], 'age' : [20,15,38,8] }를 만들고, 

  - DataFrame을 만들어본다. >  df = pd.DataFrame(data)

  - 행(row) 추가는 doc에 데이터를 추가하고, df.append( )를 이용한다.

    (ignore_index=True는 인덱스를 넣지 않고, 0, 1~ 로 넣겠다는 의미다. )

[Data Frame 생성 및 행 추가 실습]

 

  - 열(column) 추가는 df[' '] = [' '] 형식을 이용하고, 행 수에 맞추어 데이터를 추가한다. 

[열 추가 실습]

 

  - 특정 열(column)을 출력하기 위해서, 열 대괄호를 두 번 해야 DataFrame 형식으로 반환된다

[특정 열 출력 실습]

 

  - 조건에 맞는 행만 뽑기 위해서는, df[df['age'] < 20] 으로 간단하게 입력할 수 있다. 

[조건에 맞는 행 출력 실습]

 

  - 특정 행에서 데이터 출력을 하기 위해서는, df.iloc[몇 번째 줄,몇 번째 데이터] 형태로 입력한다. 

[특정 행 데이터 출력 실습]

 

  - 정렬하여 조건에 맞는 데이터 구하기 위해서는, df.sort_values(by='행 제목',ascending=True or False)를 이용한다. 

    (ascending=True는 오름차순, False는 내림차순이다)

[데이터 정렬 및 데이터 구하기 실습]

 

  - 조건에 맞는 열을 추가하기 위해서는, df['생성하는 열 제목'] = np.where(df['age'] > 20,'성인','청소년')을 이용한다.

    (age가 20 이상이면 '성인', 20미만이면 '청소년')

[조건에 맞는 열 추가 실습]

 

  - 평균은 .mean(), 최대값은 .max(), 최소값은 .min(), 갯수는 .count() 을 입력하고, 

  - 전체 연산 값을 출력하고 싶다면 .describe()을 이용한다.

[연산 출력 실습]

 

  - 서울에 사는 사람중 나이가 가장 많은 사람은 아래와 같이 입력하여 구한다. 

[나이가 가장 많은 사람 구하기 실습]

 

 

 

2. 엑셀 가져오기

  - 홈페이지에서 제공하는 종목데이터 다운로드 후 colab에 파일을 붙여넣는다. 

  - 엑셀을 DataFrame으로 읽는다 

 

[파일 다운로드 후 데이터프레임 불러오기 실습]

 

  - 긴 줄을 모두 볼 필요 없이 앞의 몇 줄만 보고싶은 경우엔 .head(), 뒤의 몇 줄만 보고싶은 경우엔 .tail()을 쓴다.

[데이터 앞줄, 뒷줄 불러오기 실습]

 

  - 아래 코드는 데이타를 소숫점 둘째자리까지 보여준다. 

    pd.options.display.float_format = '{:.2f}'.format

[소숫점 둘쨰자리 설정하기 실습]

 

 

3. Pandas 실전 

- 어제 오른 종목들만 골라보고 싶다면, change_rate이 0보다 큰 값을 출력하면 된다. 

[어제 오른 종목들 골라보기 실습]

 

  - per가 0 인 종목들을 제거하고 싶다면, 0보다 큰 값을 출력 하면 된다. 

[per가 0 인 종목들을 제거하기 실습]

 

  - 순이익, 종가를 추가하려면 아래 코드를 이용한다. (per = 시가총액 / 순이익 = 주가 / 주당순이익)

df['earning'] = df['marketcap'] / df['per']
df['close'] = df['per'] * df['eps']

[순이익과 종가 데이터에 추가하기 실습]

 

  - date 컬럼을 없애려면, def df[' ']를 이용한다. 

[date 컬럼 없애기 실습]

 

  - 조건 (pbr < 1 & 시총 1조 이상 & per < 20 )을 적용하여 출력하고 싶다면, 아래와 같이 cond = (조건1) & (조건2) & (조건3)을 만들어 추가한다. 

[pbr < 1 & 시총 1조 이상 & per < 20 조건 적용하기 실습]

 

  - 시총이 큰 순서대로 보고싶다면, .sort_values(by='열 제목', ascending=False)를 입력한다. 

     (ascending=False는 내림차순, ascending=True는 오름차순)

[시총 큰 순서대로 정렬하기 실습]

 

  - 평균, 표준편차 등의 정보를 보려면, .describe()를 사용한다. 

[데이타 평균, 표준편차 등 정보 불러오기 실습]

 

 

 

728x90
반응형