21.07.26 _ 판다스 내장 그래프 도구

우니·2021년 7월 26일
0

머신러닝

목록 보기
2/3

더워서 드러누운 콩순이 보고 가세요



오늘은 내장 그래프 도구를 알아보려고 합니다.

판다스 내장 그래프 도구

  • 판다스는 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



matplotlib

  • histogram : plt.hist(x,bins=)
  • lin plot : plit.plot(x,y)
  • plt.bar(x,y, width=, color=")
  • scatter plot : plt.scatter(x,y)

seaborn

  • 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사분위에서 1.5 IQR을 뺀 위치
  2. 제1사분위 (Q1) : 25% 위치를 의미
  3. 제2사분위 (Q2) : 50% 위치로 중앙값(median)을 의미
  4. 제3사분위 (Q3) : 75% 위치를 의미
  5. 최대값 : 제3사분위에서 1.5 IQR을 더한 위치

박스플롯 그리는 방법

  1. 주어진 데이터에서 각 사분위수를 계산한다.
  2. 그래프에서 제 1사분위수와 제 3사분위수를 기준으로 박스를 그린다.
  3. 제 2사분위수에 해당하는 위치에 선을 긋는다.
  4. 제 3사분위수에서 1.5*IQR을 더한 위치에 가로 선을 긎고 제 3사분위수부터 가로선까지 세로선 긋기
  5. 제 1사분위수에서 1.5*IQR을 뺀 위치에 가로 선을 긎고 제 1사분위수부터 가로선까지 세로선 긋기
  6. 4,5번에 그은 직선을 넘어서는 위치에 존재하는 값은 동그라미와 같은 기호로 표시한다.(이상치 의미)

IQR 구하는 방법

데이터가 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

profile
데이터와 머신러닝을 배우는 일본사업 마케터입니다

0개의 댓글