[ 0106 ]
결측치 보기
df.isnull()
df.isnull().sum()
df.isnull().mean()
count()
sns.heatmap(df(), **cmap='gray'**)
plt.**figure(figsize=(12, 8))**
수치형 변수
plt.show()
비대칭도(왜도)
.skew()
첨도
.kurt()
normal=0 에 가까울수록 정규분포에 가까움
hist — 빈도, kde — 곡선(밀도) => 적분했을 때 1이 되는 값
hue(색으로 그룹핑) = group by
ecdf — 누적해서 그림
스케일링

.boxplot()
.scatterplot()
.regplot()
.residplot()
.lmplot()
.jointplot()
.pairplot()
.lineplot()
.relplot()
[ 0107 ]
기술통계
df.describe(include=“object”) 범주형 데이터
—> exclude=“object” 수치형 데이터
범주형 변수
sns.countplot(data=df, x="origin")
df["origin"].value_counts()
pd.crosstab(index=df['origin'], columns=df['cylinders'])
ci=errorbar
df.groupby('origin')[['mpg']].mean()
pd.pivot_table() = groupby()와 거의 유사
groupby -> pivot_table -> crosstab
estimator=sum
df.groupby(by=['origin', 'cylinders'])['mpg'].mean().unstack()
pivot 과 pivot_table 차이
boxplot -> boxenplot -> violinplot
.scatterplot()
.catplot()
범주형, 수치형 구분법
[ 0201 ]
웹데이터 수집—————————
라이브러리 불러오기
* import FinanceDataReader as fdr
한국거래소 상장종목 전체 가져오기
df = fdr.StockListing()
df.sort_values(by='ListingDate', ascending=False).head()
파일로 저장하고 불러오기
df.to_csv('___.csv', index=False)
[ 0202 ]
**URL 보는 법**
소스코드 -> Network -> 지우기 -> 수집 할 페이지 들어가기 -> Header -> Request URL
pandas만으로 데이터 수집하기
read_html로 수집하기
table = pd.read_html(url)
반복문으로 데이터 가져오기
display()
cols = df.columns
…….
news.columns = cols
수집한 데이터 활용
pd.concat()
.dropna()
df_news.reset_index(drop=True)
얕은복사 => 원본의 값이 바뀜
깊은복사 => .copy() 원본에 영향X
df_news['A'].str.contains('B')
from tqdm import trange
<-> trange는 진행상태를 표시 (범위가 지정되어 있을 때만 사용)
time.sleep()
pd.concat(news_list)
.to_csv(file_name, index=False)
pd.read_csv(file_name)
[ 0203 ]
import requests
* get — Query String, post — Form Data
* post 는 회원 가입할 때 적은 정보 폼, 물건이나 음식 주문할 때 메시지 입력하고 버튼 누를 때, 검색어 입력하고 버튼 눌러 전송했을 때 주로 사용
BeautifulSoup 을 통한 table 태그 찾기
* from bs4 import BeautifulSoup as bs
— 문서가 보기 좋게 바뀌는 라이브러리
* html.a
— 태그 한줄
* html.find_all(‘a’)
— a 태그 모두
* html.select(‘a’)
— a 태그의 기능들을 다 가져옴
* 차이 :
- find_all은 attribute를 지정해서 사용할 수 있음(콕 찝어서 메인뉴스에 대한 링크만 가져와줘)
ex) class가 A인 B를 찾아라
- select는 구조로 지정해서 사용
ex) class > A > B
수집 데이터 활용
.dropna()
for문
while문
BeautifulSoup을 사용하지 않은 이유
중복데이터 제거
df_day.drop_duplicates()
**과학적 기수법**
: 너무 크거나 너무 작은 숫자들을 십진법으로 편하게 작성하여 표현하는 방법
[ 0204 ]
**ETF(상장지수펀드)**
: 기초지수의 성과를 추적하는 것이 목표인 인덱스 펀드, 주식처럼 거래, 신속하고 투명
JSON
: 비동기 통신을 통해 데이터를 내려받아 웹브라우저에 자바스크립트로 데이터를 표현
.json()
etf_json[“A”][“B”]
.str.split(expand=True)
expand=True
from datetime import datetime
datetime.today().strftime("%Y-%m-%d")
.strftime("%Y-%m-%d")
pd.read_csv(file_name, dtype={"itemcode" : "object"})