더워서 드러누운 콩순이 보고 가세요
오늘은 내장 그래프 도구를 알아보려고 합니다.
- 판다스는 Matplotlib 라이브러리 기능을 일부 내장하고 있어서 별도로 import하지 않아도 간단히 그래프를 그릴 수 있다
- 선그래프 : df.plot()메소드 적용 시 다른 옵션을 추가하지 않으면 가장 기본적인 선그래프를 그린다
- 막대그래프 : df.plot(kind='bar), df.plot(kind='bath', stacked=True, alpha=0.8)
- 히스토그램 : df.plot(kind='hist')
- 산점도 : df.plot(x='', y='', kind='scatter'), 상관관계를 볼 수 있다
- 박스플롯 : df.plot(kind='box;), df.boxplot(columns=['feature])특정 변수의 데이터 분포와 분산 정도에 대한 정보를 제공
예 - 주사위 확률변수 : 1~6 확률분포 : 1/6
- histogram : plt.hist(x,bins=)
- lin plot : plit.plot(x,y)
- plt.bar(x,y, width=, color=")
- scatter plot : plt.scatter(x,y)
- sns.distplot(data, bins=, color=, kde=), histplot, displot으로 변경
- sns.boxplot(x,y, data, color)
- sns.violinplot(x,y, data, color) : 양쪽 박스 형태로 된 것을 분포로 동시 파악 가능
- sns.barplot(x,y, data, color) : 막대그래프
- sns.jointplot(x,y,data,color) : 스케터플랏, 히스토그램을 종합해서 구하는 것
- sns.pairplot(data, hue, palette) : 여러 개 그리면 동시에 나오는 것
- sns.Impolt (x,y, data, color) : 선형 회귀를 그려주는 그림
- sns.regplot(x,y,data,fig_reg=Flase) : 선형회귀를 그려주지만 조금 다름
import matplotlib.pyplot as plt
plt.style.use('seaborn-dark')
%config InlineBackend.figure_format = 'retina'
# 선그래프
df1.plot()
# 막대 그래프
df.Close.plot(kind='bar')
# Q.6월만을 추출하여 close 칼럼으로 일별 막대 그래프를 표현하세요.
df1.Close.loc['2018-06'][::-1].plot(kind='bar')
#corr 상관관계
df.corr()
# Q. Close 칼럼의 Box Plot
df.Close.plot(kind='box')
#Close컬럼 이상치 구하기
Q1 = df.Close.describe()['25%']
print(Q1)
Q3 = df.Close.describe()['75%']
print(Q3)
IQR = Q3 - Q1
print(IQR)
abv = df[(df['Close']<(Q1-IQR*1.5))|(df['Close']>(Q3+IQR*1.5))]
abv
세상에는 참 다양한 표가 있군요.
박스플롯은 오늘 처음 보게 된 형태인데요.
자료에서 얻은 다섯가지 수치를 요약한 값을 통해 그리게 되는 표라고 할 수 있습니다.
박스 플롯을 해석하는 방법은 아래와 같습니다.
IQR?
- 제3사분위 - 제1사분위의 값
다섯수치 요약
- 최소값 : 1사분위에서 1.5 IQR을 뺀 위치
- 제1사분위 (Q1) : 25% 위치를 의미
- 제2사분위 (Q2) : 50% 위치로 중앙값(median)을 의미
- 제3사분위 (Q3) : 75% 위치를 의미
- 최대값 : 제3사분위에서 1.5 IQR을 더한 위치
박스플롯 그리는 방법
- 주어진 데이터에서 각 사분위수를 계산한다.
- 그래프에서 제 1사분위수와 제 3사분위수를 기준으로 박스를 그린다.
- 제 2사분위수에 해당하는 위치에 선을 긋는다.
- 제 3사분위수에서 1.5*IQR을 더한 위치에 가로 선을 긎고 제 3사분위수부터 가로선까지 세로선 긋기
- 제 1사분위수에서 1.5*IQR을 뺀 위치에 가로 선을 긎고 제 1사분위수부터 가로선까지 세로선 긋기
- 4,5번에 그은 직선을 넘어서는 위치에 존재하는 값은 동그라미와 같은 기호로 표시한다.(이상치 의미)
데이터가 7, 9, 16, 36, 39, 45, 45, 46, 48, 51인 경우
Q1 = 14.25
Q2(중위수) = 42
Q3 = 46.50
사분위간 범위(IQR) = 32.25
1.5 IQR = 32.25 x 1.5 = 48.38