본문 바로가기

카테고리 없음

2주차 개발일지

Pandas 기초

Pandas , numpy 라이브러리 import

import pandas as pd
import numpy as np

 

기본 DataFrame 만들어보기

data = {
    'name' : ['영수','철수','영희','소희'],
    'age' : [20,15,38,8]
}

 

DataFrame 다루기 - 기초

행 추가하기

doc = {
	'name':'세종',
	'age':14,
}
df = df.append(doc,ignore_index=True)

Colums 추가하기

df['city'] = ['서울','부산','부산','서울','서울']

 

특정 Column만 뽑아보기

대괄호를 두 번 해야 DataFrame 형식으로 반환됨

df[['name','city']]

원하는 조건에 맞는 행만 뽑아보기

df[df['age'] < 20]

 

특정 행에서의 뽑아보기

df.iloc[-1,0] # 마지막 행
df.iloc[0,0] # 첫 행

 

DataFrame 다루기 - 연산

열을 정렬하기

df.sort_values(by='age',ascending=True)

 

조건에 맞는 열을 추가하기

np.where(df['age'] > 20,'성인','청소년')
df['is_adult'] = np.where(df['age'] > 20,'성인','청소년')

 

평균, 최대값, 최소값, 갯수 구하기

df['age'].mean()

df['age'].max()

df['age'].min()

df['age'].count()

퀴즈 - 서울에 사는 사람 중 나이가 가장 많은 사람은 몇 살?

df[df['city'] == '서울']['age'].max()

⇒ 또는

df[df['city'] == '서울'].sort_values(by='age',ascending=False).iloc[0,1]

 

엑셀 가져오기

엑셀을 DataFrame으로 읽기

pd.read_excel('종목데이터.xlsx')

 

소수점둘째자리

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

 

Pandas 실전

어제 오른 종목들만 골라보기

df[df['change_rate'] > 0]

 

per가 0 인 종목들을 제거하기

df = df[df['per'] > 0]

 

순이익, 종가를 추가하기

per = 시가총액 / 순이익 = 주가 / 주당순이익

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

 

date 컬럼을 없애기

del df['date']

 

pbr < 1 & 시총 1조 이상 & per < 20 을 추려보기

cond = (df['marketcap'] > 1000000000000) & (df['pbr'] < 1) & (df['per'] < 20)
df[cond]

시총이 큰 순서대로 보기

df[cond].sort_values(by='marketcap', ascending=False)

 

평균, 표준편차 등의 정보를 보기 (함께하기)

df[cond].describe()

 

해외주식 다루기 - yfinance

yfinance 라이브러리 설치하기

!pip install yfinance

 

yfinance 라이브러리 불러오기

import yfinance as yf

 yfinance 라이브러리 전체 사용법 → https://pypi.org/project/yfinance/

 

yfinance

Download market data from Yahoo! Finance API

pypi.org