Skip to content

Instantly share code, notes, and snippets.

@yong27
Last active January 21, 2016 02:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yong27/715c0ef9a09dd6eb37e9 to your computer and use it in GitHub Desktop.
Save yong27/715c0ef9a09dd6eb37e9 to your computer and use it in GitHub Desktop.
Jupyter 데이터 분석 사례 (인코고등학교 중간고사 성적)
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 성적 데이터 분석\n",
"\n",
"인코고등학교 1학년의 중간고사 성적이 나왔습니다. 1반과 2반 두개의 반으로 구성되어 있고, 학생은 각각 6명입니다. 이 성적 데이터로 간단한 데이터 분석을 하고자 합니다. \n",
"\n",
"본 Jupyter Notebook은 보시는 것처럼 문서와 파이썬 코드가 각각 섞여서 사용됩니다. 먼저, 데이터 분석에 필요한 파이썬 모듈들을 임포트합니다. (\"#\" 는 주석표시를 의미합니다. 본 코드는 Python 3으로 작성되어 한국어 표시 등이 더 편리합니다.)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np ## 백터, 행렬 데이터 전문 모듈 numpy\n",
"import pandas as pd ## 고수준 데이터 모델 (DataFrame) 모듈 pandas\n",
"import matplotlib.pyplot as plt ## 차트 그리기 모듈 matplotlib\n",
"import scipy.stats as stats ## 통계 등 과학용 모듈 scipy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"엑셀 파일을 불러옵니다. pandas의 read_excel 함수를 이용합니다. df라는 변수에 엑셀쉬트를 DataFrame으로 만듭니다."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>반</th>\n",
" <th>이름</th>\n",
" <th>국어</th>\n",
" <th>영어</th>\n",
" <th>수학</th>\n",
" <th>과학</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>성춘향</td>\n",
" <td>67</td>\n",
" <td>87</td>\n",
" <td>90</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>이몽룡</td>\n",
" <td>45</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>향단이</td>\n",
" <td>95</td>\n",
" <td>59</td>\n",
" <td>96</td>\n",
" <td>88</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>방자</td>\n",
" <td>65</td>\n",
" <td>94</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>월매</td>\n",
" <td>45</td>\n",
" <td>65</td>\n",
" <td>78</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>변학도</td>\n",
" <td>78</td>\n",
" <td>76</td>\n",
" <td>98</td>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2</td>\n",
" <td>홍길동</td>\n",
" <td>87</td>\n",
" <td>67</td>\n",
" <td>65</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>임꺽정</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" <td>78</td>\n",
" <td>78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>전우치</td>\n",
" <td>100</td>\n",
" <td>78</td>\n",
" <td>56</td>\n",
" <td>65</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>일지매</td>\n",
" <td>99</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2</td>\n",
" <td>심청</td>\n",
" <td>98</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2</td>\n",
" <td>콩쥐</td>\n",
" <td>65</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>78</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 반 이름 국어 영어 수학 과학\n",
"0 1 성춘향 67 87 90 98\n",
"1 1 이몽룡 45 45 56 98\n",
"2 1 향단이 95 59 96 88\n",
"3 1 방자 65 94 89 98\n",
"4 1 월매 45 65 78 98\n",
"5 1 변학도 78 76 98 89\n",
"6 2 홍길동 87 67 65 56\n",
"7 2 임꺽정 89 98 78 78\n",
"8 2 전우치 100 78 56 65\n",
"9 2 일지매 99 89 87 87\n",
"10 2 심청 98 45 56 54\n",
"11 2 콩쥐 65 89 87 78"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_excel('성적표.xlsx')\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"엑셀쉬트를 잘 읽어들였고, 또 화면에 잘 표시합니다. \n",
"\n",
"여기에 기본적인 통계인 총점과 평균을 추가해서, 평균으로 정렬해보겠습니다."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>반</th>\n",
" <th>이름</th>\n",
" <th>국어</th>\n",
" <th>영어</th>\n",
" <th>수학</th>\n",
" <th>과학</th>\n",
" <th>총점</th>\n",
" <th>평균</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>일지매</td>\n",
" <td>99</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>87</td>\n",
" <td>362</td>\n",
" <td>90.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>방자</td>\n",
" <td>65</td>\n",
" <td>94</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" <td>346</td>\n",
" <td>86.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>임꺽정</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" <td>78</td>\n",
" <td>78</td>\n",
" <td>343</td>\n",
" <td>85.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>성춘향</td>\n",
" <td>67</td>\n",
" <td>87</td>\n",
" <td>90</td>\n",
" <td>98</td>\n",
" <td>342</td>\n",
" <td>85.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>변학도</td>\n",
" <td>78</td>\n",
" <td>76</td>\n",
" <td>98</td>\n",
" <td>89</td>\n",
" <td>341</td>\n",
" <td>85.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>향단이</td>\n",
" <td>95</td>\n",
" <td>59</td>\n",
" <td>96</td>\n",
" <td>88</td>\n",
" <td>338</td>\n",
" <td>84.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2</td>\n",
" <td>콩쥐</td>\n",
" <td>65</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>78</td>\n",
" <td>319</td>\n",
" <td>79.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>전우치</td>\n",
" <td>100</td>\n",
" <td>78</td>\n",
" <td>56</td>\n",
" <td>65</td>\n",
" <td>299</td>\n",
" <td>74.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>월매</td>\n",
" <td>45</td>\n",
" <td>65</td>\n",
" <td>78</td>\n",
" <td>98</td>\n",
" <td>286</td>\n",
" <td>71.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2</td>\n",
" <td>홍길동</td>\n",
" <td>87</td>\n",
" <td>67</td>\n",
" <td>65</td>\n",
" <td>56</td>\n",
" <td>275</td>\n",
" <td>68.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2</td>\n",
" <td>심청</td>\n",
" <td>98</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>54</td>\n",
" <td>253</td>\n",
" <td>63.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>이몽룡</td>\n",
" <td>45</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>98</td>\n",
" <td>244</td>\n",
" <td>61.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 반 이름 국어 영어 수학 과학 총점 평균\n",
"9 2 일지매 99 89 87 87 362 90.50\n",
"3 1 방자 65 94 89 98 346 86.50\n",
"7 2 임꺽정 89 98 78 78 343 85.75\n",
"0 1 성춘향 67 87 90 98 342 85.50\n",
"5 1 변학도 78 76 98 89 341 85.25\n",
"2 1 향단이 95 59 96 88 338 84.50\n",
"11 2 콩쥐 65 89 87 78 319 79.75\n",
"8 2 전우치 100 78 56 65 299 74.75\n",
"4 1 월매 45 65 78 98 286 71.50\n",
"6 2 홍길동 87 67 65 56 275 68.75\n",
"10 2 심청 98 45 56 54 253 63.25\n",
"1 1 이몽룡 45 45 56 98 244 61.00"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"subjects = ['국어', '영어', '수학', '과학']\n",
"df['총점'] = df[subjects].sum(axis=1)\n",
"df['평균']= df['총점'] / len(subjects)\n",
"df.sort_values(['평균'], ascending=[False])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"일지매가 전교 1등이네요. \n",
"\n",
"총점으로 막대그래프를 그려볼까요? 그래프를 그리기전, matplotlib에서 한국어가 잘 표시되기 위해 다음을 실행합니다. (OS X에서 테스트 중인데, 기본 폰트에 한국어가 없나봅니다.)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib\n",
"matplotlib.rc('font', family='AppleGothic')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"자료를 평균으로 내림차순 정렬하고, 각 데이터의 이름을 `이름` 필드를 사용하도록 한 후, 막대그래프를 그려봅니다. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10e927358>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeUAAAElCAYAAADa2PrWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmUZVV99vHv0zSDI2gciFPw1TgmDtFEMTGWM0aNOEZM\n4kAU9Q3oMg4xmlc7SpwgahyimDiiOEWjYgQUoZwiGA0LRSMmGmfBKIKKig39e//Y53ZfiqJpuqru\n2XX7+1mrVt17btU5v7r31HnOsPc+qSokSdL4NoxdgCRJagxlSZI6YShLktQJQ1mSpE4YypIkdcJQ\nliSpE4ayJEmduFyhnOSZSQ6Zer5/klOSnJrkqCQbpl57XJLPDl9PXM2iJUmaRzsUykmuk+TTwFOm\npm0EXgQcUFV3AM4AnjC8dvNh+u2r6vbAQpJbrHr1kiTNkR0K5ar6blXtDzx9avIBwHFVde7w/LXA\nQ4bHfwYcMfWzLwUOXmGtkiTNtct7TTlTj28MnDl5UlWbgY3LvQb8F3CjnSlQkqRdxUoaegVYOnB2\n7cBrkiRpGRsv+0cu1deAm02eJNkduHB4+lXgJsBnhuc3Af576QySGNSSpF1OVWW56Ss5Uj4euF+S\nfYbnBwPvGh4fDTwNIEmAQ4E3XEphq/L13Oc+d9XmZU3WZU3WtKvUZU2zr2l7dvpIuaouSPJs4Pgk\nm4HTgcOG105L8okkn6EdPb+hqr68s8uSJGlXcLlCuarevOT5x4E7XsrPvhJ45c6XJknSrmVuRvRa\nWFgYu4RLsKYd12Nd1rRjrGnH9ViXNe2YWdWUyzq/vaYLT2rM5UuSNGtJqDVo6CVJklaRoSxJUicM\nZUmSOmEoS5LUCUNZkqROGMqSJHXCUJYkqROGsiRJnTCUJUnqhKEsSVInDGVJkjphKEuS1AlDWZKk\nThjKkiR1wlCWJKkT6yKU9913P5Ks+Gvfffcb+0+RJOlSparGW3hSO7L8JMBq1BnG/HslSUpCVWW5\n19bFkbIkSbsCQ1mSpE4YypIkdcJQliSpE4ayJEmdMJQlSeqEoSxJUicM5Z20WgOaOKiJJGnCwUN2\ndk6rVhOsVl377rsfZ5/9jVWoB6597V/jrLO+virzkiRts73BQwzlnZ1Th6HcY03uKEjSxRnK2+Zk\nKO/43Oa2Jli9nQV3FCRdXobytjkZyjs+t7mtCfpcp9xRkHYNhvK2OXW4UYd5DsAea4J5X6e88YrU\nM29IIUnSOmAoS5LUCUNZkqROGMqSJHVixaGc5PpJjk1yUpJPJzlwmL5/klOSnJrkqCTuAEiStB0r\nbn2d5O3AS6rqtCRXBf4NuA3wUeABVXVuksOAi6rqH5b8rq2v29zmtqVzjzXBvK9Ttr6WerbWra83\nABcOj/cAfgAcABxXVecO018LPGQVliVJ0tzauArz+EvgrUm+B9wEOAi4F3Dm5AeqanOS1ViWJElz\nazWC8lHA6cDRwK2BNwL/wg6eh9u0adPWxwsLCywsLKxCSZIk9WFxcZHFxcUd+tkVXVNOcjNgU1U9\nfGranwL7Ab+sqhcP03YHjq+quy/5fa8pt7nN7fXbHmuCeV+n+hv6Exz+U5pYy2vKPwaum+QKw4J2\np11PXgTul2Sf4ecOBt61wmVJmrEWyLUqX6sV7tI8W9Hp66r6bpIjgROSbAYCvL6qPpHkr4Hjh+mn\nA4etvFxJkuaXN6TY2Tl1eFrWmi7HnOZ6neqxJrCrltR4QwpJktYBQ1mSpE4YypIkdcJQliSpE4ay\nJEmdMJQlSeqEoSxJUicMZUnryr777keSVfnad9/9xv5zpItx8JCdnVOHgypY0+WY01yvUz3WBPO+\nTkk7ysFDJElaBwxlSZI6YShLktQJQ1mSpE4YypIkdcJQlqQVspuWVotdonZ2Th12y7CmyzGnuV6n\neqwJ5nmd6rEm9csuUZIkrQOGsiRJnTCUJUnqhKEsSVInDGVJmlOr1SrcFuGzY+vrnZ1Th60trely\nzGmu16kea4J5Xqd6rAn6XKdk62tJktYFQ1mSpE4YypIkdcJQliSpE4ayJEmdMJQlSeqEoSxJUicM\nZUmSOmEoS5LUCUNZkqROGMqSJHXCUJYkzYw3ydg+b0ixs3PqcAB6a7occ5rrdarHmmCe16kea4J5\nX6fW700y1vSGFGlemOQTSU5O8vRh+v5JTklyapKjknhULknSdqxGUD4TOKeq7lxVdwXelWQj8CLg\ngKq6A3AG8IRVWJYkSXNrRaGcZHfggVV1xGRaVX0DOAA4rqrOHSa/FnjISpYlSdK8W+mR8g2BLyQ5\nNMlJSU5McnfgxsCZkx+qqs3AxhUuS5KkVbdajc9WowHaSoPyysA9aUfFd0tyTeAE4GhWr9WDJElr\n5uyzv8FqRdbZZy/bfmuHrTSUvwp8qar+GaCq/jfJp4AAN5380HCae/NyM9i0adPWxwsLCywsLKyw\nJEmS+rG4uMji4uIO/eyKu0QleRPwjqo6PsmVgeOBew/f719V5yZ5PEBVHbXkd+0S1eY2t90yeqwJ\n5n2d6rEmmOd1qseaYN7XqR5rgh2pa3tdolYjlPcGXgVcH9gCPK+qFpPcBXgx7Qj5dOCwpQlsKG+d\n29xuGHqsCeZ9neqxJpjndarHmmDe16kea4LRQ3klDOWtc5vbDUOPNcG8r1M91gTzvE71WBPM+zrV\nY02w0lB2QA9JkjphKEuS1AlDWZKkThjKkiR1wlCWJKkThrIkSZ0wlCVJ6oShLElSJwxlSZI6YShL\nktQJQ1mSpE4YypIkdcJQliSpE4ayJEmdMJQlSeqEoSxJUicMZUmSOmEoS5LUCUNZkqROGMqSJHXC\nUJYkqROGsiRJnTCUJUnqhKEsSVInDGVJkjphKEuS1AlDWZKkThjKkiR1wlCWJKkThrIkSZ0wlCVJ\n6oShLElSJwxlSZI6YShLktQJQ1mSpE4YypIkdWJVQjnJnZN8e+r5/klOSXJqkqOSGP6SJF2GFYdl\nkqsChwLfHZ5vBF4EHFBVdwDOAJ6w0uVIkjTvVuMI9gjgWcCFw/MDgOOq6tzh+WuBh6zCciRJmmsr\nCuUkBwH/XlVfnZp8Y+DMyZOq2gxsXMlyJEnaFex0WCa5PnCfqnrkZNLU91ppYZIk7WpWcgR7IPDr\nSU6iBfEthsfHAjed/FCS3YHNlzaTTZs2bX28sLDAwsLCCkqSJKkvi4uLLC4u7tDPpmp1DmqTfLqq\n9k+yJ3AicP+qOjfJ4wGq6qhlfqd2ZPnJah18h1X8e1m9EwKrU5c1XY45zfU61WNNMM/rVI81wbyv\nUz3WBDtSVxKqKsu9tprXegugqi5I8mzg+CSbgdOBw1ZxOZIkzaVVO1LeqYV7pDyZ29zurfdYE8z7\nOtVjTTDP61SPNcG8r1M91gQrPVJ2UA9JkjphKEuS1AlDWZKkThjKkiR1wlCWJKkThrIkSZ0wlCVJ\n6oShLElSJwxlSZI6YShLktQJQ1mSpE4YypIkdcJQliSpE4ayJEmdMJQlSeqEoSxJUicMZUmSOmEo\nS5LUCUNZkqROGMqSJHXCUJYkqROGsiRJnTCUJUnqhKEsSVInDGVJkjphKEuS1AlDWZKkThjKkiR1\nwlCWJKkThrIkSZ0wlCVJ6oShLElSJwxlSZI6YShLktQJQ1mSpE4YypIkdWJFoZxk/yQfSHJSkk8m\nudfU9FOSnJrkqCSGvyRJl2GlYbkBOKiq7gbcDzgiyUbgRcABVXUH4AzgCStcjiRJc29FoVxVn6qq\n84en5wE/Aw4Ajquqc4fprwUespLlSJK0K1iV08pJAhwBvB64MXDm5LWq2gxsXI3lSJI0z1Yclkmu\nBbwceHtVHZvkKUDt6O9v2rRp6+OFhQUWFhZWWpIkSd1YXFxkcXFxh342VTucn5f85eSGwCuAQ6rq\ne8O0BwA3q6oXD893B46vqrsv8/u1I8tvB+I7X+fUnFjJ33uxOa1aTbBadVnT5ZjTXK9TPdYE87xO\n9VgTzPs61WNNsCN1JaGqstxrKz19vQk4eBLIg+OB+yXZZ3h+MPCuFS5HkqS5t9Ij5a8A3548pe1q\nPBa4HvASYDNwOnDYcofEHilvndvc7q33WBPM+zrVY00wz+tUjzXBvK9TPdYEKz1SXlEor5ShvHVu\nc7th6LEmmPd1qseaYJ7XqR5rgnlfp3qsCcY+fS1JklaJoSxJUicMZUmSOmEoS5LUCUNZkqROGMqS\nJHXCUJYkqROGsiRJnTCUJUnqhKEsSVInDGVJkjphKEuS1AlDWZKkThjKkiR1wlCWJKkThrIkSZ0w\nlCVJ6oShLElSJwxlSZI6YShLktQJQ1mSpE4YypIkdcJQliSpE4ayJEmdMJQlSeqEoSxJUicMZUmS\nOmEoS5LUCUNZkqROGMqSJHXCUJYkqROGsiRJnTCUJUnqhKEsSVInDGVJkjqxZqGc5FpJPpTklCQn\nJNl3rZYlSdI8WMsj5b8DnlNVdwSeNTxfQ4trO/udsjh2ActYHLuAS7E4dgHLWBy7gGUsjl3AMhbH\nLmAZi2MXcCkWxy5gGYtjF7CMxbELWMbiTJayJqGcZG/g6lX1WYCq+hxw1SRXXYvlNYtrN+udtjh2\nActYHLuAS7E4dgHLWBy7gGUsjl3AMhbHLmAZi2MXcCkWxy5gGYtjF7CMxbELWMbiTJayVkfKNwT+\ne8m0/xmmS5KkZaxVKAeoZaYvN02SJAGpWv2cTHI14K1Vdd+paR8EHlFVP56aZkhLknY5VZXlpm9c\no4X9KMn5SW5bVacluRXwg+lA3l5RkiTtitbkSBkgyXWB1wNXAs4DHlNV/7smC5MkaQ6sWShLkqTL\nxxG9JEnqhKEsSVInDOU1lOQeY9fQsyQPHb7fcexapF1RknsmscFtR7ymvIqS7FZVF009P66q7jNy\nTY8DfglcyLZ+4p8HbgxcFTimqi6ccU17VNUvk5wC3Ak4vKqeleQqwJWq6qxZ1rMjkjymqt44wnIf\nQev3H9pO9NLH36+qY2dYz58AW7b3M1V1zIzK2SrJU9j23iz7VVUvnHFNHwZ+AmwGrkD7//s57bPb\nA9gL+OOqOmeGNV2lqn6S5JZV9cWhq+oDquqiJFeqqvNnVctUTc9l2/YpwG7AD4APAAcDb66qb8y6\nrqWSbASuWVXfW8vlrEmXqFnocYUHPphkC9tWrA1JTgQuor3Xqaq7zbAegO8O3zcBhw91PRS4BvA5\n4BXA/51xTe9IciHwTeAYgCRvA64PnJXkxKp63YxrYqjjplV15vD4DlV16vDSI4GZhzJwReCC4WsL\nbT3fMPU10x0q2v/YFrYF8zWBc7j4DsMYPk/bFmymvUdL36eZ11VV95o8TnJf4OdVddKs65iqYSNw\nLLAAvCrJ3YAtQyA/GXjwcCAx050X4GO0zw3gZcBf0Nb3lwHvAV4F3H/GNV3McDbhKsCBwGvWdAem\nqtb9F3Bf4G4d1BHgN5eZfq8Oavvo8H0v4C3AtYfnJ49Uz92XPP8H4FbDe3jSiO/TRy7l8Wg19fQF\n/Nbw/UrAdYDTxq5pSX0PXvL8wBFrOY4WKu8E3g+8D3gH8M/AvwI3mnE9mdoOTL6/d/h+wvB9caT3\n6jeAfYb3Zbfh8aTGk0eq6TPA8bQw/hjtzOLjgKcCJwLPXovlrucj5eOAn9GOFPYCKskhtCPSKwBP\nqqqvjlDaC5jaq0tyOPCVEeqYLP8lwDOBRyf5VeBI4Feq6uzhR8a6fnGnJOcDzwPeCuwHfKmqauSR\n3qaPPDdfyvSZSrIHcAjwu7TP6zPAa6rqghHKeRFwL+BJwMnABUk2VNV2T2nP0BNpQUiSv6ZtI0ZR\nI1+6Wmr435qsxxcleSRtxwq2nUm46JK/ubaGy1YPAN5XVfdN8jzgTLa1eRpre3A2bV3aCFyNdrbs\nfNoBxT2SfBT429Ve6LoN5d5WeNi60gOQ5GbAXwIfr6q3jFjWbatqy3A/6+fQNqavSLJ7VW2+jN9d\ndUl2A94LfBJ4Cm1FfyLtuvdGWviNFoBcPIivk+TRtHquOU45ALwO+HfgCUMtDwKOAh49Qi0bh43m\nBVV1yrCRf3iSnw6vn1ZV35p1UUl+A/ht2s7544HfB06vqpfOupYldb2ZdoQ1OZ2+b7Xb2Y5W0vC9\naKeIJ/9rkwC8wswratuDE4C7JfkrWjuJtyX54+H1mW+npmyhvTc/As4Afo1tubkmO6LrNpShyxUe\n4DZJPgDcFnhGVb195HoqySdpd+haqKr/SfJl4FZJ/muEerbQTn1upt3e86wkFwCnAwckOY12jXIs\nG5Y8nhxpzfwIYsoNqurRU8+PTvKYkWoJ7dTipDHeRbRGgz+i/R9+DZh5KA9CW68mZ8/O3v6Pz8QN\nq+r3J0+SfGLMYti2zU9VvXPSA4LW/mUD4wTgZtpO+QJwA6aOPpPsDuw+Qk3QTqNP2gj9AvghF7/T\n4W5rsdD13iXqhlX1wKp6UFUdyLh7VBNfqKo/pH1410zy8pG7HGypqt8D7gq8MMktaNdvXwK8m3b6\neNZeDuwJnDbsGV8TOAL4Q+D5tCPosUzvqJ5VVe+qqncBYw4Re0GSG02eJLkda7SXvgM2V9WThpp+\nj7YxfVtVvbKqXlVVZ4xU15m09bmq6vVV9WDg1kkeNFI9E0vP+oy9jbpVkvcDtxmeTzLgWODfaNe/\nZ+19w/cXAwcARyS5JfB24DTg6BFqgrYtuIgWytejnWLfQDvDAGuUn+v6SJn+VnhoLb+p1s3oFUkO\npLVwPmykes4e6vnKcCr2ncD9q+ruYxRTrQXFB5PcgdYi/H6066M/pXV/GM1wpHCLJEfS/uGm94TH\n3LF6PHBkkr1pNZ0DjHWk/PHh+yuBP6aF8hVHqmWr4VLM5iRnTk1+GvCPtNOjY/lGkn+hbas2AFce\nsRZoXXpqWNdh+Oyq6mVJXlcjdImqqtcl+dP2sH6Y5M+ATVX1RMYLZGhnW7YA/0Tr6fNK4I+Ak5Oc\nTNsJXHXrup9ykjcCe9P2ZjYA16+q3xm3Kkhy76o6Yer5Lavqi2PWNJHkRiM1gFtax54jNVTaruFM\nwkW08Pt5Vf3PMP1jVXWXUYvrUJJnAn9fVT8fu5blJEmt543cGktyUAeX2C5h6ZgPPUjyK7Rutq9I\nsrHWaHyHdR3KPZn+kJKcXFV3nXptH+AKtcadzterJPesqo+MXcf2JHlQVY15xEWSW1XV50eu4aG0\na8ZnVrtF6/uAB9J2im8L/EcPLbGT/E5VfWbkGh7OJdsofBvYp6rel+RVVXXoONX1Y2gl/0vazvAk\nkD4EPGx4vHtV/b8xaps29IK4/lof1BjKq2QYUej3adcb9qQdaW0EnkFrPXsu8M6qevOM6zqE1kjh\nQrYNavJ94FoMR4RjtA5Pcruq+tywkX9iTQ2qMj2AxxiSXBu4alWN0RDuUiV5QVU9a8m0Q6vqVTOs\n4T+BtwEH0VqA36mqHp7k72inQn+0tMYZ1nZj4FtVdUGSxapaGKOOqXrux8W78zwfeBPwZ1V16yQf\nnfVlpKFl+iT8iraTcDVgz6p6S5KnVdWRM67pnrSuRlvYtt08k3at+VDgqKq63SxrWk6Sm1XVl9d6\nOev2mvLQQGi50xuTD3XPqvrrWdVTVS+jjUBzMUn+ntbl5wxah/OZhjLtqGZy5HI48FzaP8Cf0zYS\nY3SBAHjeEMj3AX665LWX0BpVzNTUKbMbD1//NUy/wdSPfXuWR4JJTmBbY5MNQ//8ybXue9Oucc0s\nlGmhd3iSawyn8X57mH7roe/mB2dYy1Zpw8lOxpr/I9rIY6Oqqq3vxRA8k241k5brY/Sh/ibtqBTa\nevQj4MG04W7fQvt/nGkoLz1LNoTfWUnOq6rPJjlvlvVsx/7Al4fupddYq0aN6zaUgf/g4mM6T8ZN\nnf6aqSR3Ytte6Aba3t6NgP+sNpTdzE/rVdVxSW4LfB04tao+NNT6/emNxiwlmZxReCjtqGtpI7ix\nGuy9Z2gpvxvtcuRDaP0nn0k7nbZhePyDWRVUVfeePE6yJ3DT6VPYSX657C+uncny9hwuy0xOz07+\n38bapjwcuCdwcJJb00GjzyT3Bx5La2z2f4AXcvHT2TO/ZlpVxy2dluQutJ1QaGfVRjPsvBxC2zZM\n3p8xBjQJ8B3aUMS70T63o4dW4f8EnJ3k42vRD37dhnJVnZDkrlW1td/fsNG6Q1V9fDu/upbuRBvY\n4f20Eao+NEyfhPFYDRfeTatpz6mGXmNet/gb2op+46p6c5KnpI29uxvwQUbq7lNVBy53fTvJA6rq\nkDFqGpb/+Ko6iva+HE7rOjYx1kZ0H9rgOLcdnk8+s7EGfqlhkJyv0gJwS9rgE5P1/IKqes+Ma3o6\nrYvPR2nDa34SuDtt7ICNrFE/1+1Jcgzt7NlL6+Kj+k22TTP/30tyDdpZgycDNwMeMby0tU/1rGsa\nWqifUVX3H/pKH0d7jx5HO/P5eeAkYNVDeb33U37ukuevpg0mMorhWsxpVfVi2tCRm2lHqDdNckXG\n22B9paqeShvN6ylJ7kwfn/2kK01oK/nngfMYYWM15U5Jbp/k+CSPGqaN3Qr0QNja7WfvJa/N+ohw\n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\nJKkT/x/Ma7iRvWD2igAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e96a278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sorted_df = df.sort_values(['평균'], ascending=[False])\n",
"sorted_df.index = sorted_df['이름']\n",
"sorted_df['평균'].plot(kind='bar', figsize=(8, 4))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"막대그래프로 평균점수를 보니까, 2위 그룹들이 비슷비슷하네요. 일지매는 방심하면 안되겠네요."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1반과 2반의 점수 비교\n",
"\n",
"그럼 이번에는 1반과 2반중 어느반이 더 잘했나 볼까요? 담임선생님들 이것에 민감하죠?"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(79.041666666666671, 77.125)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"일반 = df[df['반'] == 1]\n",
"이반 = df[df['반'] == 2]\n",
"일반평균 = 일반['총점'].sum() / (6 * 4)\n",
"이반평균 = 이반['총점'].sum() / (6 * 4)\n",
"일반평균, 이반평균"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1반이 평균이 높네요. (파이썬 3은 변수명을 한국어로 쓸 수 도 있습니다. \"1반\" 이라고 변수를 쓰고 싶었지만, 파이썬 변수 명명 규칙이 숫자로 시작하면 안되기 때문에 그냥 저렇게 표시합니다.) \n",
"\n",
"1반 선생님 좋아합니다. 그걸 보고있던 2반 선생님이 \"별 차이도 안나는구먼 뭘\" 이라고 합니다. \n",
"\n",
"정말 두 반의 평균은 차이가 없는 걸까요? 서로 독립적인 두 집단에서 얻어진 수치형 자료로 부터 두 집단의 차이가 유의한지를 파악하는데는 독립표본 [t-검정](https://en.wikipedia.org/wiki/Student%27s_t-test) (two independent sample t-test)이 유용합니다. scipy의 ttest_ind 함수를 이용하여 바로 계산이 가능합니다."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Ttest_indResult(statistic=0.31996022820984599, pvalue=0.755583336185639)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stats.ttest_ind(일반['평균'], 이반['평균'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`p value > 0.005` 이므로 두 집단이 차이가 없다는 영가설을 채택합니다. 즉 1반과 2반은 사실 유의한 점수차이가 없습니다. 오차수준에 의한 차이라고 봐야겠네요. 1반 선생님 그렇게 좋아하시면 아니될 듯.\n",
"\n",
"혹시 과목별로는 차이가 있을까요? 과목별로도 확인해보겠습니다."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"국어 Ttest_indResult(statistic=-2.490140665442242, pvalue=0.031982494983816424)\n",
"영어 Ttest_indResult(statistic=-0.61569071526315811, pvalue=0.55185337815288071)\n",
"수학 Ttest_indResult(statistic=1.4961318778859336, pvalue=0.1654958420079056)\n",
"과학 Ttest_indResult(statistic=4.3284425553317547, pvalue=0.0014931977711732465)\n"
]
}
],
"source": [
"for subject in subjects:\n",
" print(subject, stats.ttest_ind(일반[subject], 이반[subject]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"과학 과목은 p value < 0.005 입니다. 차이가 많이 나네요. 평균이 어떻길래."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(94.833333333333329, 69.666666666666671)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"일반['과학'].sum() / 6, 이반['과학'].sum() / 6"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"역시 차이가 많이 났군요. 1반 학생들은 과학에 소질이 많은 것 같습니다. \n",
"\n",
"## 과목별 비교 \n",
"\n",
"과목별로 다른 특징이 있는 것 같습니다. 먼저 전체 데이터를 막대그래프로 그려보겠습니다. 앞서 그렸던 성적별 막대그래프를 과목별로 각각 그려보겠습니다. "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10ea60978>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlQAAAGUCAYAAADzmLwAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2cXGV99/HPbzdLAlKJimRvHpJYKYIIVFEgVCBRovER\nfAYUFQqpWlu0omLtLYlQwWLrA1QMaCkiUWNVFG9ABRPQKkI1gKAiiERBsoiRVBDCZvd3/3HOLJvN\nLNnkzO6c2Xzer9e8MnPm7M4vs2fOfM91rus6kZlIkiRpy3W1uwBJkqROZ6CSJEmqyEAlSZJUkYFK\nkiSpIgOVJElSRQYqSZKkigxUkiRJFW1WoIqIUyJi4bDHcyLi2oj4YUQsiYiuYc+dGBH/U97e2sqi\nJUmS6mRMgSoido6IHwDvHLZsCnAmsCAzDwRuBt5SPrdXufzZmflsYG5EPL3l1UuSJNXAmAJVZv42\nM+cA7x62eAFweWbeXz7+FPDq8v5fA2cNW/ffgOMr1ipJklRLm9uHKobd3x24tfEgM/uBKc2eA24D\nnrolBUqSJNXdlE2vMqoARl4IMMfw3KO/IMILCUqSpI6RmdFseZVRfncAT2s8iIgeYH358JfAHsPW\n3QO4fZTCxu126qmnjuvvt+7JU3un1t3JtXdq3XWrvdyTjrg137fWqe5Ofs+3hro7ufbxrPuxVAlU\nVwAvjYjp5ePjgWXl/YuAkwEiIoC3A/9R4bUkSZJqa4sDVWauA94PXBER3wX2Ac4rn1sJfDcirgP+\nG1iRmT+vWmxv72wiYqNbb+/sqr9akiRpi21WH6rMvHDE42uAg0ZZ92zg7C0vbWN9fato0hWLvr6m\npzOZO3duK19+wnRq3dC5tXdq3dC5tXdq3dC5tXdq3dC5tXdq3dC5tber7tjUOcFxffGI3JzXL84e\nNls/NnluU5Imo+b7RfeJ0niICHKUTulVRvlJkqRJYvbs2axatardZdTCrFmzuPPOOzfrZ7yWXwfp\nnTmzeR+ymTMnvpZde5vXsmvvhNcynur0no9mdm/zv8Xs3sn1t5CaafYZrdPns0421Q951apVbR+h\nV5fblgRLT/l1kIiA5cs3fmLevAn//0cELGryxCIm1d+iTu/5aCJilE/F5PpbqLmt/ZRf089ojT6f\ndbKp79DydNZEl1VLo70Xj3XKzxYqSZKkigxUkiRJFRmoJEmSKjJQSZKkpkbryN6qWysn5t6c/l8L\nFizgtttua9lrg9MmSGqT2b29rOrr22j5rBkzuHP16jZUJGmk0SbUbt3vbz4x92iOOeYY7rrrLrq7\nu+nu7h5avn79eu6//35uuOGGoWXLli3jwgsvZLvttuOkk07iuc997tBzAwMDdHW1tk3JQCWpLVb1\n9TUfb9QkZEkSwNKlS5su//nPf86pp5469PjKK6/k/PPP5+KLL2bNmjUcffTRXHLJJcyaNQsoWrOG\nB7JW8JSfJEnqaD/+8Y/Zf//9hx4vWbKEM844g5122ok999yT9773vSxZsmTo+fEIVLZQSZKkWlu+\nfDmLFy9m2223pauri+7ubgYGBli/fv3QRJw9PT0sW7aMj370o9x2223svffeQz+/3377sWzZsqHH\nBipJtdbbO7vsc/GoGTNmsXr1ne0pSNKkMG/ePA499NANQtAnPvEJtt9+e44//vimP7N+/foNHg8M\nDHDIIYfw8MMPc/vtt7e8Rk/5SWqZRzuwPnobGbAkaUuMbFFqXCammb322otrr7126PENN9zAHnvs\nwXe/+12uv/56DjzwwJbXZwuVJEmqvf7+fg455BB6enrITB566CG22WYbvvjFL/Lggw9y0EEH8a//\n+q8ALFy4kJNPPplnPetZDA4OcuaZZ27QoX1k61UrGKjaqHfXXvru3nhE04xdZrD6LoeNS5LU0NPT\ns0Gr03A33XQTZ5999tDjefPm8Y53vIMjjjiCadOmcdppp23Qp2pgYICBgYGW1megaqO+u/uaXmC4\nb5HDxiVJ7TdjxqzNnitqc39/K0QEg4ODGyw79thjOfbYY5uub6CSJEkTplMGlETEZk3U2d3dvVkz\nq4+FgUqSJHW0ZzzjGZx//vljXn/58uUtr8FRfpIkSRUZqCRJkioyUEmSJFVkoJIkSarIQCVJklSR\ngUqSJKkiA5UkSWqqd9deImLcbr279ras1pe//OX87ne/G9O6CxYs4LbbbmvZa4PzUEmSpFGMdkWP\nlv3+zbwyyOmnn87KlSvp7u7mSU96Eh//+MfZZpttgOJiycMvoLxs2TIuvPBCtttuO0466SSe+9zn\nDj03MDCwWROBjoWBSpIk1d6XvvQlttlmG7785S8D8PWvf50PfehD/P73v+eXv/wl119//dDlZ668\n8krOP/98Lr74YtasWcPRRx/NJZdcwqxZxaVuRoavVvCUnwTM7m3erC1Jqofvf//7vOxlLxt6fPjh\nh7Ny5UrOPvtsLrvsMubMmTN0OZklS5ZwxhlnsNNOO7Hnnnvy3ve+lyVLlgz9rIFKGier+vpI2Ogm\nSaqH/fffn6VLlw49/sIXvsCcOXP43ve+xze+8Q36+vqGAtUvfvEL9t5776F199tvP37+858PPTZQ\nSZKkrdIb3vAGuru7OeSQQ5g3bx433HAD73rXu3jooYf44x//yMDAwNApv4hg/fr1G/z8wMAAhxxy\nCM95znNYuXJly+uzD5UkSeoIixYtYtGiRRssmz9/PgDXX3/9UAf1vfbai2uvvXbouRtuuIE99tiD\ns846CyhG+bXa5AhU3TTt7zJjlxmsvmt1GwqqZirN/z/t0Ns7m76+Ve0uQ1uip2ej7WjGbrux+te/\nblNBnad3195ilNMInbpvkSaDyy67jE996lM8+OCDQ8se//jHc8opp/DEJz4RgIULF3LyySfzrGc9\ni8HBQc4888wNTheObL1qhckRqAZoOqxzc4dj1sU6mvffaUfEKsJUXarRZunvh+XLN1jUN29em4rp\nTKMNGe/UfYvU6e644w4WLVrEt771LaZPnz60/He/+x2HHnooN9xwA1OnTmXevHm84x3v4IgjjmDa\ntGmcdtppG/SpGhgYYGBgoKW1TY5AJUmSWm7GLjPG9QBixi4zNmv9rq4uMnOo83nDI488Qnd3Nz09\nPUPLjj32WI499timv8dAJWnya3KqEjxdKbVD3U5tz549m8WLF3PUUUexbt06oAhZT3rSk1i6dOmY\nJ+vs7u7eKJRVZaCSVC9NTlWCpyslFV784hfz4he/uNLvWN5kH1OV0yZIkiRVZKCSJEmqaFIHqsb0\nAyNv3dtuu/EVr2fObHe5mgCjXTld2hyj7Vtm9/a2uzRNgN7e2Rt/h/TObndZarNJ3Ydq1OkHHn7Y\n4eRbqVGvnN5smTSKUfctfU6nsDVoNp1MX58HZlu7Sd1CJUmSNBEMVJIkqeP09/e3fOqDKgxUkiSp\nqdm9zfudtupWpd/hSSedxNve9rbN/rlrrrmGE044YYtfdzQGKkmS1NSqvj4Sxu22agv7HX7729/m\nnnvuYf369Vx11VVN1/nVr37FYYcdxuGHH84xxxxDZrJu3Tq6uro2mFG9VSZ1p3RJkjR53HPPPSxZ\nsoRbb72Viy++mK6uLk488UQuvfRSjjnmGJ75zGfS09PDYYcdxrRp05g+fTpdXV2sXbuW+fPns+++\n+/KKV7xiXEZ3G6gkSVLtffrTn2bFihW88Y1vZNGiRUPLL7roIq677jouvvhirrrqKt73vvdx9dVX\nc/vtt3PFFVewdu1adtttN4444gh22GEHrr766pZfxw8MVJIkqQOccMIJo/Z9OuCAAzjggAOGHt97\n770ceeSRfPKTn2TGjBncdNNNzJ8/n+uuu47M5Ktf/SorV67kYx/7GAcffHBL6jNQSZKkWrvxxhs5\n5ZRThh5HxNAIv8HBQfr7+1m3bh0PP/wwH/7wh5k7dy777LMPP/vZz3jggQe4++67mTNnztD6r3rV\nqzj33HNbWqOBSpIk1drTn/50PvvZzzJ16lSmTp3KlClTuOiii1i7di0nnXRS05/5/Oc/z3333cea\nNWs4+OCDmT59OgA77rgj++yzT8trNFBJkqRa6+np4clPfvIGyyKCwcHBpus/8MADHHjggUybNo1p\n06bR3d09tG5/fz977713y2s0UEmSpI60fv36psu33357brnllqbPrVq1iuOOO67ltTgPlSRJamrW\njBkEjNtt1owZlepbt27dZv9MZo7aslWFLVSSJKmpO1evbncJo+rt7d2iYBQR7Lzzzi2vx0AlSZI6\nzgtf+MIt+rlZs2axdOnSFlfjKT9JkqTKDFSSJEkVGagkSZIqqhyoImK3iLg0Ir4TET+IiCPL5XMi\n4tqI+GFELIkIw5skSZqUWhFy/gX4QGY+D3ghcHpETAHOBBZk5oHAzcBbWvBakiRJtdOKQNUFNGbW\n2ga4D1gAXJ6Z95fLPwW8ugWvJUmSVDutCFTvBc6NiC8BVwFvA3YHbm2skJn9OEWDJEkdpXfmTCJi\n3G69M2e2pM7rrruO173udWNa95prruGEE05oyesO14qQ8ybgRuAiYD/gAuCrQI7lhxctWjR0f+7c\nucydO7cFJUmSpKr6fvMbWL58/H7/vHljXve8887jggsuGLou3+DgIAMDA1x//fV0d3czbdq0Ddb/\n1a9+xZvf/GZ6enrYaaeduPjii3nkkUfo6uqip6dnTK+5YsUKVqxYMaZ1KwWqiNgT2CszjyoXXRsR\nfwJmA08btl4P0N/sdwwPVJIkSc2ceOKJLFy4cINlz3jGM4bud3d3D90/7LDDmDZtGtOnT6erq4u1\na9cyf/589t13X17xilcQEWN6zZENPYsXLx513aotVP8L7BIR22bmQ2VwWkDRZ+pDEbGk7Ed1PLCs\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ea029b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sorted_df[subjects].plot(kind='bar', figsize=(10, 6))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"일지매는 전체적으로 점수가 고르게 높은데, 2등부터는 약간 들쑥날쑥하네요. 과목별 점수 분포를 볼까요? boxplot으로 그려보겠습니다."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10eb57160>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nFfAnrnJSwtyyKz8+81TCY7PYpm5mNo08U5+wXHM1yTV3rrma5Jo711xNcszt89TNzKyzzk1d0rMk\nfVHS9ZJulvT79f61km6RtE3SZkmD/QFSwpwtJ65nWq5nOiXUMkWjPRf4q4g4FngN8BFJK4GzgXUR\ncTRwO3BagvsyM7N96DxTl3Q58JGIuE3SU4G/B84HfiMizq6vswq4tm78C2/rmfpA5Jo711xNcs2d\na64mOeYe8nnq7wP+VtKPgOcDbwReDdwxvkJE7KpfvZuZ2TJK0WjfAtwKXAocBXwG+Dwt38EwNzfH\n6tWrAZiZmWHNmjXMzs4Cu+dbfW+P96X7enl9f67nsLfH+1zP7tvbt29nw4YNSb4eVFRVmnxVVTE/\nPw/wWL9cSqfxi6QjgE0R8ccL9r0JWA08FBHn1PtWAVsj4rhFtx/E+KWqqgX/UN3k+GtiG65nWq5n\nWqlyD6WW+xq/dG3qzwQuB14dEQ/UzXseuBj4KHBiROyUdCpARGxedPtBNPWUcs3VJNfcueZqkmvu\nXHM1yTH3IGfqEXGvpPOBayXtYrSaxaci4iZJZwFb6/23Auu73JeZmTXrfEpjRPxjRLwiIo6LiGMj\n4rJ6/1cj4piIeHlEnLFsL8knYOHs0rpzPdNyPdMpoZaDfUOQmZk9ntd+mbBcczXJNXeuuZrkmjvX\nXE1yzO21X8zMrDM39RZKmLPlxPVMy/VMp4RauqmbmRXEM/UJyzVXk1xz55qrSa65c83VJMfcgzxP\n3aaH/6am2TB4/NJCCXO2rvw3NfPlx2c6JdTSTd3MrCCeqU9Yrrma5Jo711xNcs2da64mOeb2eepm\nZtaZm3oLJczZcuJ6puV6plNCLd3UzcwK4pn6hOWaq0muuXPN1STX3LnmapJjbs/UzcysMzf1FkqY\ns+XE9UzL9RyRUnxUib4OHHpoP3XwO0rNbPBSjTlyHOPsL8/UJyzXXE1yzZ1rria55s4116QM5fv3\nTN3MbEq4qbfgmWVarmdarmdKVd8BOnNTNzMriGfqE5Zrria55s41V5Ncc+eaa1I2bRp95G5fM3U3\n9QnLNVeTXHPnmqtJrrlzzWV78oHSjjyzTMv1TMv1TKeEWrqpm5kVxOOXCcs1V5Ncc+eaq0muuXPN\nZXvy+MXMbEq4qbdQwpwtJ65nWq5nOnNzVd8ROuvU1CUdJOkGSdfXHzdI+vf6srWSbpG0TdJmSf4B\n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\ndTOzgvw/TWbFl1VEXAAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ebf8518>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df[subjects].boxplot(return_type='axes')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1반과 2반을 각각 boxplot으로 그려봅시다."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10ed6f828>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nkP8Hry8M933dJTEAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ea23160>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"일반[subjects].boxplot(return_type='axes')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10ef7e160>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAECCAYAAAAB2kexAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAF1dJREFUeJzt3X+MZXV5x/H3h91Vk1KdRazVVN0qsSg1rq0tbrV6haJr\nCtIfa6xN1SnWAsoqJjX+gHSXaiy/KlVawtqoS6iNYFOtgiwV5ahRwLY6W0gjVHG1FbXR3dGGUljg\n6R/33N1hmJl7ds937vme7/28ktE5Z+6PZx7OPnPv5577vYoIzMysDEd0XYCZmaXjoW5mVhAPdTOz\ngniom5kVxEPdzKwgHupmZgXxUDczK8ghDXVJb5f0xwu2N0m6WdItknZIOmLBz14v6V/qrzNTFm1m\nZktrNNQlPVHSTcBbFuxbC5wPbI6I44HbgDPqnz2j3v/ciHguMJD0zOTVm5nZQzQa6hFxV0RsAt66\nYPdm4LqImK+3Lwe21N+/DrhowWXfC5zWslYzMxvjUDN1Lfj+GOD20UZE7AfWLvUz4D+Apx1OgWZm\n1lybF0oFLF44Jhr8zMzMVsna8RdZ1p3AsaMNSeuA++vNbwJPB75Sbz8d+MbiG5DkQW9mdhgiQkvt\nb/NIfRdwsqSZevs04Or6+yuBPwGQJOAs4EPLFJb9F2zrvIaSvrZtcz/dzzy/+tLLlRz2I/WIuFfS\nOcAuSfuB3cDW+mdfk/RFSV9h+Oj9QxHx9cO9r+7t6bqAouzZs6frEorifqZTQi8PaahHxBWLtr8A\nPG+Zy14KXHr4pZmZ2aFqk6ln7aijYN++VLc2i5ZMrw7d+vWwd2+a2+qr2dnZrksoivuZTgm91Lh8\nZlXvXIrVun8JOvzVlpVrXWbWH5KIVXihdGpUVdV1CUVxP9NyP9MpoZfFxi/WDaXKqWDsq/xm9nCO\nXyYs17rMrD8cv5iZTQkP9QZKyNly4n6m5X6mU0IvPdRt4nbu7LoCs3I5U5+wXOuaJPfArB1n6mZm\nU8JDvYEScra8VF0XUBQfn+mU0EsPdTOzgjhTn7Bc65ok98CsHWfqlpVt27quwKxcHuoNlJCz5WQw\nqLouoSg+PtMpoZce6mZmBXGmPmG51mVm/eFM3cxsSnioN1BCzpYT9zMt9zOdEnrpoW4T57VfzFZP\nsZl6sg8VXQ1THqr7dQWzdlbK1Iv95CMRWQ4OCTIsy8wK4filgRJytrxUXRdQFB+f6ZTQSw91M7OC\nFJup55rb5lrXJLkHZu34PHXLitd+MVs9HuoNlJCz5cRrv6Tl4zOdEnrpoW5mVpDWmbqkZwMXAWuA\nnwBvioj/lLQJuAQQMAecGREPLrquM3Uzs0O0UqaeYqjfArw8In4g6VnAhcApwGeBUyNiXtJW4IGI\nuGzRdT3UzcwO0aq9UCrpscD3I+IHABFxK7AHeDtwXUTM1xe9HNjS5r66VELOlhP3My33M50Setlq\nqEfEj4AnS3oKgKRfA04A7gFuX3C5/RT87lU7NF77xWz1pIhfngO8h+HQ/hLDbP3HwDci4hMLLveF\niHjhous6fplC7oFZO6u69ktEfA142YI7+xLwPuAXFuxbB+xf6vqzs7Ns2LABgJmZGTZu3MhgMAAO\nPhUqbRvyqse/v7e9nfd2VVXsrJ/ijublclI8Un9qRNxZf/964DjgbcANwCn1C6WnA0TEjkXX7cUj\n9aqqDjS6LT9KBakiYtB1GcVIeXxOu770crVXaTxe0g7g0cBXgTdHxH2SzgF2SdoP7Aa2JrgvMzNb\ngdd+mbBc65ok98CsnalcT93SOuoo2Lcv3e2l+gyT9eth7940t2VWAi8T0MDBF/im1759w0fXKb5u\nvLFKdlsp/9D0lY/PdEropYe6mVlBnKlPWK51jZNr3bnWZbaavJ66mdmUKHqoS6m+qmS3tX59113p\nXgm5ZU7cz3RK6GWxZ7+kfErup/hm1hfFZuqHUEPS2+v691ktuf5hy7WuFHxsplVSP32e+gqm/UC3\nfPnYTGta+ll0pp5KCTlbTtzPtGZnq65LKEYJx6aHulnPXXFF1xWUo4S1/qc+U7dmcs2uc61rktyD\ndPrSS5+nbmY2JTzUGyghZ8uJ+5la1XUBBam6LqA1D3Uzs4I4U7dGcs0ac61rnNRLGacy7UsZ9+V4\n8nnqZpkZLWWcm8Tvz+mdbdu6rqA9xy8NOANOy/1My/1MZzCoui6hNQ91M7OCOFO3RnLNGnOta5xc\n6861LnsoZ+rWWiDIMG+NBf9rZo5fGnFmCSLRh4pGUN14Y7Lbkge6j8+ESuilh7qZWc1rv7S9c2fq\nvZFr1pprXePkWneudU1KX35/r/1iZjYlPNQbKCFny4n7mZb7mVLVdQGteaibmRXEmbo1kmvWmGtd\n4+Rad651TUpffn9n6mZmDXjtF0DSkyR9StLnJN0k6bfq/Zsk3SzpFkk7JPX2D4gzy7Tcz7Tcz3S8\n9svQhcCfRsQJwEuBd0taC5wPbI6I44HbgDMS3JeZma2gdaYu6Srg3RFxq6Sjgb8HLgZ+MSLOry+z\nDri+HvwLr+tMvSdyzRpzrWucXOvOtS57qNVe++VtwN9K+h7wdOBVwEuA20cXiIj99aN3MzNbRSkG\n7WuB3cCVwLOBDwMfp+EqS7Ozs2zYsAGAmZkZNm7cyGAwAA5mhV1vj/blUk/ft0f70t1eXr+f+9nf\n7bm5Oc4+++xs6hltV1XFznoNg9G8XE6r+EXSscD2iPi9BfteDWwA7ouIC+p964BdEXHiouv3In6p\nqupAo6dVyqflKfvZ17jA/czT7GzFzp2DrssYa6X4pe1QfyJwFfCSiLinHt47gcuB9wCnRMS8pNMB\nImLHouv3Yqhbvv/Yc61rnFzrzrWuSenL779qmXpE3CXpYuB6SfsZrrj9wYj4oqRzgV31/t3A1jb3\nZWZm4/kdpQ04fnFckJr7mSepImLQdRlj+R2lZmZTwo/UrZFcH8HlWtc4udada12T0pff34/Uzaxo\nRx01HMhtvyDN7UjDmrrgod7AwvOBrT33My33E/btS/OxtzfeWKX6+Fz27eumFx7qZmYFcaZujeSa\nNeZa1zi51p1rXePkWPdq1uRM3cxsSnioN+DMMi33My33M50SeumhbmZWEGfq1kiOmSXkW9c4udad\na13j5Fi3M3UzM2vNQ72BEnK2nLifabmf6ZTQSw91M7OCOFO3RnLMLCHfusbJte5c6xonx7qdqZuZ\nWWse6g2UkLPlxP1My/1Mp4ReeqibmRXEmbo1kmNmCfnWNU6udeda1zg51u1M3czMWvNQb6CEnC0n\n7mda7mc6JfTSQ93MrCDO1K2RHDNLyLeucXKtO9e6xsmxbmfqZmbWmod6AyXkbDlxP9NyP9MpoZce\n6mZmBXGmbo3kmFlCvnWNk2vdudY1To51O1M3M7PWPNQbKCFny4n7CYGGD+USfFWJbgdpWFcPpepn\nCb1c2+bKko4APguMnmQI+JmIOE7SJuCSet8ccGZEPNjm/sxKISLdU/OqgsEgyU1JB/8x90myfhbQ\ny6SZuqSfA84HZhkO+1MjYl7SVuCBiLhs0eWdqfdEjpkl5FvXOLnWnWtd4+RYdymZ+puAS4HNwHUR\nMV/vvxzYkvi+zMxskWRDXdKRwHERcQtwDHD76GcRsZ+WUU+XnAGn5X6m5X6mU0IvUw7aPwI+WH8v\nGsZJs7OzbNiwAYCZmRk2btzIoM60Rg3uenskl3r6vj2S7vby+v3cz/5uz83NJbs9qBhG9O1vr6oq\ndu7cCXBgXi4nSaZev2D6T8BJERGSTgWOjYgL6p+vA3ZFxImLrudMvSeU6UkR69fD3r1dV3HocsyA\nId+6xsmx7r5n6luAf1wwoXcBJ0uaqbdPA65OdF/WgYh0Xylvr48D3Ww1pRrqp3EweiEi7gXOAXZJ\n+iLwLOADie5r4hY/zbW2qq4LKIqPz3RK6GWSTD0iNi+x7wvA81LcvpmZNeO1X2zicsw/Jy3XHuRa\n1zg51t33TN3MzDLgod5ACTlbTl772qrrEori4zOdEnrpoW4TNzvbdQVm5XKmbtaBHDNgyLeucXKs\n25m6mZm15qHeQAk5W07cz7Tcz3RK6KWHuplZQZyp28Rt3z78mmY5ZsCQb13j5Fh3V5m6h7pNXI7/\nACct1x7kWtc4OdbtF0ozVkLOlpeq6wKK4uMznRJ66aHewNzcXNclmJk14qHewPz8/PgL2SEYdF1A\nUQ5+KIO1VUIvPdTNzArS288NXW1VVR3I184777wD+weDQRF/zbs0XPtl0HEV5aiqysdkIiX00kN9\nGQuH9549e9g+7efgJeS1X8xWj+OXBsZ90Ksdmr4/EsqN+5lOCb30UG+ghP/QZjYdPNRt4ko4Fzgn\n7mc6JfTSQ93MrCBeJsAmzmu/5Pm2dsi3rnFyrNtrv9jUyPEf4KTl2oNc6xonx7q99kvGSsjZ8lJ1\nXUBRfHymU0IvPdTNzAri+MUmLsenypOWaw9yrWucHOt2/GJmZq15qDdQQs6Wk+HaL5aKj890Suil\nh7pNnNd+MVs9rTN1SQLeA7wAuB/4dERcJGkTcAkgYA44MyIeXHRdZ+o2lXLMgCHfusbJse7enqcu\n6R3A/RFxUb39FOC7wGeBUyNiXtJW4IGIuGzRdT3UbSrlOIQg37rGybHuXr5QKmkd8NujgQ4QEd8G\nNgPXRcToI4MuB7a0ua8ulZCz5cT9TMv9TKeEXrZdT/3ngVslnQX8DvAg8OfAMcDtowtFxH5JXrvd\nzGyVtR20RwInMXxUfoKkxwHXA1cCjZ54zM7OHlivfGZmho0bNx5Y6nb0V9PbZW1X1YDBIJ96vP3Q\n7dGnUuVSz+R/f5LcHlRUVZr6qqpi586dwPjPd2iVqUt6DHBVRGxesO9S4FvAuoi4oN63DtgVEScu\nur4z9SmUY/45abn2INe6xsmx7l5m6hHxY+D7kjbXd3Qk8BxgB3CypJn6oqcBV7e5ry4t/gtubVVd\nF1AUH5/plNDLFDn3m4G/kvR2hpn6uRFxt6RzgV2S9gO7ga0J7svMzFbgtV9s4nJ8qjxpufYg17rG\nybHuXsYvZmaWFw/1BkrI2XLitV/S8vGZTgm99LnjNnFe+2VISz557tb69V1XcPhy62dXvXSmbtZz\nOebJfdWXXjpTNzObEh7qDZSQs+XE/Uyt6rqAglRdF9Cah7qZWUE81Bs4uJaDpVBVg65LKMyg6wIK\nMui6gNY81G3izjuv6wrKsm1b1xWUo4Reeqg34Aw4tarrAooyGFRdl1CMEnrp89TNMqXEJ1779OHp\n4PPUbeL6ci6wWa58nrqZ2ZTwUG/AmXpaXvslLR+f6ZTQSw91mziv/WK5qj8xrtecqZuZ1fryeo8z\ndTOzKeGh3kAJOVtO3M+03M+Uqq4LaM3nqZvZVGh63n/TtwfkGh07U7eJ2759+GVmh2elTN1D3Sau\nLy9GmeXKL5S25MwytarrAori4zOdEnrpoW5mVhDHLzZxjl/M2nH8YmY2JTzUGyghZ8uJ135Jy8dn\nOiX00kPdJs5rv5itHmfqZmY9s1Km3uodpZK+DtwFCAjggxHxkfpnm4BL6p/NAWdGxINt7s/MzFbW\nNn7ZGxEnRMSL6/8fDfS1wPnA5og4HrgNOKPlfXWmhJwtJ+5nWu5nOiX0su1QX26VhM3AdRExX29f\nDmxpeV9mZjZG26F+tKS/kXSDpKslPbnefwxw++hCEbGfHi8eNhgMui6hKFU16LqEovj4TKeEXrYd\n6tuBt0bEbwB/Aeys948ydrOHOe+8riswK1erR8+jDL3+/hZJj6o37wSOHf1M0jpg/1K3MTs7y4YN\nGwCYmZlh48aNB/5ajvKtrrdH+3Kpp+/bQ+6nj8/8tufm5jj77LOzqWe0XVUVO+vP2hvNy+W0OqVR\n0qaIuKn+/kXAGyLilZIeCdwAnBIR85JOB4iIHYuu34tTGquqOtBoa0+qiBh0XUYxfHym05dertrS\nu5L+kuEj8rUMT218c0Tsq3/2QuBCho/QdwNbF0/wvgx1S8trv5i14/XULSse6mbteEGvlh6aBVtb\nXvslLR+f6ZTQSw91mziv/WK2ehy/mJn1jOMXM7Mp4aHeQAk5W07cz7Tcz3RK6KWHuplZQZyp28Rt\n3z78MrPD4/PULSs+T92sHb9Q2lIJOVteqq4LKIqPz3RK6KWHuplZQRy/2MQ5fjFrx/GLmdmU8FBv\noIScLSde+yUtH5/plNBLD3WbOK/9YrZ6nKlbUtJyn0V+6HxsmC1tpUy9tx8GbXnyIDbrluOXBkrI\n2XLifqblfqZTQi891M3MCuJM3cysZ3yeupnZlPBQb6CEnC0n7mda7mc6JfTSQ93MrCDO1M3MesaZ\nupnZlPBQb6CEnC0n7mda7mc6JfTSQ93MrCDO1M3MesaZupnZlEgy1CX9uqT/WrC9SdLNkm6RtENS\nr/94lJCz5cT9TMv9TKeEXrYetpIeDZwF3FVvrwXOBzZHxPHAbcAZbe+nS3Nzc12XUBT3My33M50S\nepniEfRFwDuB++vtzcB1ETFfb18ObElwP52Zn58ffyFrzP1My/1Mp4Rethrqkl4F/HNEfHPB7mOA\n20cbEbEfr9tuZjYRhz1sJT0JeFlEvGa0a8H/F3VKy549e7ouoSjuZ1ruZzol9PKwT2mUtBX4feAe\nhoP8l4B/BT4FPCIiLqgvtw7YFREnLnEbRQ1/M7NJWe6UxmTnqUu6KSI2SXokcANwSkTMSzq9LmBH\nkjsyM7Nlpcy6AyAi7pV0DrBL0n5gN7A14f2YmdkyOn1HqZmZpdXrNwWtNklLZlZmXZC0ZoWfHTHu\nMtZcn/vpoQ5Ieoqkz0i6VtI1kj4l6RrgDkm/POa6r5T06gmVmj1JR0o6X9InJZ29YP/Jkl4z5rru\n5coulvRny/zsLZJuAD462iHpE30cSpM0euAm6QP1GX0jve2nzx8HIuLbwEmL90v6APCt+vvnAhcD\nDwBfjYi3Lrio/zgedAHwSeA84A2SXg/8LHAs8GkASb/C8E1r7mVDkt4IfA+4W9JpwIcjIiTNAGcD\ndwO7gCMkbQO+zDBefaCzojMk6RLgmfXmEcBjGZ65J+DeEvrpf0Are1xE7K2/vxB4eX1q5v9J+s16\n/xrgwU6qy9O6iLg+Iu5h+G7i4yLiXcDfcfB4uwD3shFJ75D0IeDbEXFhRPw18APgSkkX1u/cfi/w\nVIbv5v5V4NqI+AywRtLzJT2+s18gMxHxFuBUhsuYnAR8Z9HPe9/PqX+kLukVDP8y/y/DpQ7WMBw+\n9wHHSboZuAz4YUT8pL7ax4DtdbzweIZDyobukPQ64BaG72O4StJnGD4iep+kn8a9PBQX1+/KPiAi\nrgWuXbDrFcDuiDhT0mOBjzAcSGL4Du//ZviHwIb+EPh3SV8CFvZ29Bpar/s59UM9Ij7GcLAAw1x3\nuDuuXrDvp3jo+jUCvh4R75S0BXjEpOrNXURcLOlFwPOBnRFxB3CSpJOBoxk+En/Ugqu4l8uQtBl4\n4xKv168B1gGPBN7PcMBfUS/bEcCH68s9GBFXTKjcPnmw/joK+LcF+6+W9FHg4/S4n1M/1AEkDRgu\nSvYA8IR63yzDAXNSRNwt6TGSnlavc/MHwOfrq7uHi0TE5yU9DXhXnVF+F/gH4CMRsd+9bOxG4GaG\nzxrvA17OMN66auGF6hf7Ni/xiTPXT6TK/lkDPIbhg4wvSzqF4YOL342IH/a9n/5HBEREVT8Ve2C4\nOfyPWWeZ6xj+gzqL4V/v+4C5iLimvnr2r4ZPmqRzgf8B3gDMM3yh9CKGT1u/gnvZSETcC9w72q6H\nzVKvg70Y2Fb3836GA2oN8AxJn4yI7yxxnakj6XkMX8D/EcP45BjgToYLEB7Bwddzet1PD/Xa4tyy\nNvqPSUTcCrxgicus4WAWZ0OPA66JiB/V29+VdAdwJLiXLT0snoqIzwGfW7y/PnvLahFxM/DSpX5W\nn5eu+nK97qeH+sqC8WdjeBA93Hbg/ZKewMEe3lj/Y1mJe7my+zm0M9Z8dltzYvyx14t+epmAluqn\nxGuXeaRvh8C9TEvS0cDeiPBpogn0pZ8e6mZmBenF0wkzM2vGQ93MrCAe6mZmBfFQNzMriIe6mVlB\nPNTNzAry/4apNM3vDZdZAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ef23ef0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"이반[subjects].boxplot(return_type='axes')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"확실히, 1반의 과학점수가 좋네요. 분포 차이도 크지 않습니다. 대신 2반은 국어점수가 좋습니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## 과목별 상관도 \n",
"\n",
"보통 수학 점수가 높으면 과학 점수가 높을 것이라고 기대할 수 있습니다. 국어 점수가 높으면 영어 점수가 높을 것이라고도 기대할 수 있죠. 언어능력, 수리능력이 별개의 특징처럼 생각될 수 도 있기 때문입니다. 여기 학생들도 그런지 살펴볼까요."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10f017438>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nD0lSs/8PSPCZ5YrtSRsAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10efa3e80>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='scatter', x='수학', y='과학')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"수학점수가 높으면 과학점수도 높아 보입니다. 어느정도 상관관계가 보이네요. 얼마나 상관관계가 있을까요? 이렇때 상관계수를 구해볼 수 있습니다. [피어슨 상관계수](https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient)를 구해볼까요? scipy의 stats 모듈에 함수가 있습니다. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0.56328905970677512, 0.05650580486155532)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stats.pearsonr(df['수학'], df['과학'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"앞 숫자가 상관계수 뒷 숫자가 p-value를 의미합니다. 상관계수가 0.5보다 높으므로, 관계가 있긴 하지만 p > 0.05 이므로, 유의한 상관관계가 있지는 않네요. 데이터가 좀 더 많아지면, p-value가 의미있어지는 경우가 많습니다. 이 경우는 데이터 n수가 작아서 의미를 찾기 어려운 것 같습니다. 국어와 영어는 어떨까요?"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10edfba58>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10f15f898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='scatter', x='국어', y='영어')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0.10566562777973997, 0.74379595518578356)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stats.pearsonr(df['국어'], df['영어'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"상관관계가 아주 약간 있어보이지만 별로 없네요. 이 경우도, 데이터가 많으면 좀 더 충분한 관계를 밝혀낼 수 있을 것 같습니다. \n",
"\n",
"## 학생별 성적 패턴 분석\n",
"\n",
"학생별로 어떤 학생은 수학을 잘하면서 과학을 잘하지만 영어는 약할 수 있고, 또 어떤 학생은 다른 패턴으로 잘하는 과목에 대한 특징이 있을 수 있습니다. 학생들끼리 이러한 성적 패턴이 얼마나 비슷한지 비교해 볼 수 있을까요? 이를 확인할 수 있는 다양한 방법이 있습니다. 대표적인 방법으로 [주성분분석 (Principle component analysis)](https://ko.wikipedia.org/wiki/주성분_분석)이 있습니다. 학생별로 4과목이라는 특성을 두개로 축약한 후, 2차원 평면에 표시하면, 그 종합적인 차이를 한눈에 알 수 있습니다. \n",
"\n",
"PCA 분석은 [scikit-learn](http://scikit-learn.org/stable/)이라는 라이브러리를 설치하고 수행할 수 있습니다. \n",
"\n",
"PCA 분석의 입력자료는 4과목의 성적데이터 입니다."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>국어</th>\n",
" <th>영어</th>\n",
" <th>수학</th>\n",
" <th>과학</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>67</td>\n",
" <td>87</td>\n",
" <td>90</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>45</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>95</td>\n",
" <td>59</td>\n",
" <td>96</td>\n",
" <td>88</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>65</td>\n",
" <td>94</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>45</td>\n",
" <td>65</td>\n",
" <td>78</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>78</td>\n",
" <td>76</td>\n",
" <td>98</td>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>87</td>\n",
" <td>67</td>\n",
" <td>65</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" <td>78</td>\n",
" <td>78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>100</td>\n",
" <td>78</td>\n",
" <td>56</td>\n",
" <td>65</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>99</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>98</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>65</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>78</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 국어 영어 수학 과학\n",
"0 67 87 90 98\n",
"1 45 45 56 98\n",
"2 95 59 96 88\n",
"3 65 94 89 98\n",
"4 45 65 78 98\n",
"5 78 76 98 89\n",
"6 87 67 65 56\n",
"7 89 98 78 78\n",
"8 100 78 56 65\n",
"9 99 89 87 87\n",
"10 98 45 56 54\n",
"11 65 89 87 78"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[subjects]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"이 데이터를 정규화합니다. 전체 데이터를 최대, 최소를 기준으로 재 정리합니다. 정규화하는 함수는 scikit-learn 라이브러리에서 제공됩니다. "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.55809652, 0.72621778, 0.78954203, 1.01066629],\n",
" [-1.70024754, -1.68176748, -1.44749373, 1.01066629],\n",
" [ 0.89555023, -0.87910573, 1.18431305, 0.36897341],\n",
" [-0.66192843, 1.12754865, 0.72374686, 1.01066629],\n",
" [-1.70024754, -0.53510783, 0. , 1.01066629],\n",
" [ 0.01297899, 0.09555497, 1.31590339, 0.43314269],\n",
" [ 0.48022259, -0.42044187, -0.8553372 , -1.68444381],\n",
" [ 0.5840545 , 1.35688058, 0. , -0.27271947],\n",
" [ 1.15513001, 0.21022093, -1.44749373, -1.10692022],\n",
" [ 1.10321405, 0.84088374, 0.59215653, 0.30480412],\n",
" [ 1.0512981 , -1.68176748, -1.44749373, -1.81278239],\n",
" [-0.66192843, 0.84088374, 0.59215653, -0.27271947]])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"X_std = StandardScaler().fit_transform(df[subjects])\n",
"X_std"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"위 행렬데이터가 PCA의 입력으로 사용됩니다. PCA 분석 함수는 scikit-learn 라이브러리에 있습니다. "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[-1.56591653, -0.09168753],\n",
" [ 0.11774518, 2.93515218],\n",
" [-0.20727166, -0.38845514],\n",
" [-1.71984653, -0.24234692],\n",
" [-1.11185524, 1.70512415],\n",
" [-1.03327136, -0.43547978],\n",
" [ 1.88205338, -0.20323602],\n",
" [-0.10118555, -1.27408337],\n",
" [ 1.88020684, -0.64411706],\n",
" [-0.39554448, -1.36047251],\n",
" [ 2.98704605, 0.37256038],\n",
" [-0.7321601 , -0.37295837]])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.decomposition import PCA\n",
"pca = PCA(n_components=2)\n",
"Y = pca.fit_transform(X_std)\n",
"Y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Y` 변수에 4과목(4차원)을 2차원으로 축약한 데이터 값이 저장됩니다. 보통 제1주성분, 제2주성분이라고도 합니다. 이를 원래 데이터(df)에 추가합니다. "
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>반</th>\n",
" <th>이름</th>\n",
" <th>국어</th>\n",
" <th>영어</th>\n",
" <th>수학</th>\n",
" <th>과학</th>\n",
" <th>총점</th>\n",
" <th>평균</th>\n",
" <th>PC1</th>\n",
" <th>PC2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>성춘향</td>\n",
" <td>67</td>\n",
" <td>87</td>\n",
" <td>90</td>\n",
" <td>98</td>\n",
" <td>342</td>\n",
" <td>85.50</td>\n",
" <td>-1.565917</td>\n",
" <td>-0.091688</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>이몽룡</td>\n",
" <td>45</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>98</td>\n",
" <td>244</td>\n",
" <td>61.00</td>\n",
" <td>0.117745</td>\n",
" <td>2.935152</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>향단이</td>\n",
" <td>95</td>\n",
" <td>59</td>\n",
" <td>96</td>\n",
" <td>88</td>\n",
" <td>338</td>\n",
" <td>84.50</td>\n",
" <td>-0.207272</td>\n",
" <td>-0.388455</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>방자</td>\n",
" <td>65</td>\n",
" <td>94</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" <td>346</td>\n",
" <td>86.50</td>\n",
" <td>-1.719847</td>\n",
" <td>-0.242347</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>월매</td>\n",
" <td>45</td>\n",
" <td>65</td>\n",
" <td>78</td>\n",
" <td>98</td>\n",
" <td>286</td>\n",
" <td>71.50</td>\n",
" <td>-1.111855</td>\n",
" <td>1.705124</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>변학도</td>\n",
" <td>78</td>\n",
" <td>76</td>\n",
" <td>98</td>\n",
" <td>89</td>\n",
" <td>341</td>\n",
" <td>85.25</td>\n",
" <td>-1.033271</td>\n",
" <td>-0.435480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2</td>\n",
" <td>홍길동</td>\n",
" <td>87</td>\n",
" <td>67</td>\n",
" <td>65</td>\n",
" <td>56</td>\n",
" <td>275</td>\n",
" <td>68.75</td>\n",
" <td>1.882053</td>\n",
" <td>-0.203236</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>임꺽정</td>\n",
" <td>89</td>\n",
" <td>98</td>\n",
" <td>78</td>\n",
" <td>78</td>\n",
" <td>343</td>\n",
" <td>85.75</td>\n",
" <td>-0.101186</td>\n",
" <td>-1.274083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>전우치</td>\n",
" <td>100</td>\n",
" <td>78</td>\n",
" <td>56</td>\n",
" <td>65</td>\n",
" <td>299</td>\n",
" <td>74.75</td>\n",
" <td>1.880207</td>\n",
" <td>-0.644117</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>일지매</td>\n",
" <td>99</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>87</td>\n",
" <td>362</td>\n",
" <td>90.50</td>\n",
" <td>-0.395544</td>\n",
" <td>-1.360473</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2</td>\n",
" <td>심청</td>\n",
" <td>98</td>\n",
" <td>45</td>\n",
" <td>56</td>\n",
" <td>54</td>\n",
" <td>253</td>\n",
" <td>63.25</td>\n",
" <td>2.987046</td>\n",
" <td>0.372560</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2</td>\n",
" <td>콩쥐</td>\n",
" <td>65</td>\n",
" <td>89</td>\n",
" <td>87</td>\n",
" <td>78</td>\n",
" <td>319</td>\n",
" <td>79.75</td>\n",
" <td>-0.732160</td>\n",
" <td>-0.372958</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 반 이름 국어 영어 수학 과학 총점 평균 PC1 PC2\n",
"0 1 성춘향 67 87 90 98 342 85.50 -1.565917 -0.091688\n",
"1 1 이몽룡 45 45 56 98 244 61.00 0.117745 2.935152\n",
"2 1 향단이 95 59 96 88 338 84.50 -0.207272 -0.388455\n",
"3 1 방자 65 94 89 98 346 86.50 -1.719847 -0.242347\n",
"4 1 월매 45 65 78 98 286 71.50 -1.111855 1.705124\n",
"5 1 변학도 78 76 98 89 341 85.25 -1.033271 -0.435480\n",
"6 2 홍길동 87 67 65 56 275 68.75 1.882053 -0.203236\n",
"7 2 임꺽정 89 98 78 78 343 85.75 -0.101186 -1.274083\n",
"8 2 전우치 100 78 56 65 299 74.75 1.880207 -0.644117\n",
"9 2 일지매 99 89 87 87 362 90.50 -0.395544 -1.360473\n",
"10 2 심청 98 45 56 54 253 63.25 2.987046 0.372560\n",
"11 2 콩쥐 65 89 87 78 319 79.75 -0.732160 -0.372958"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pca_df = pd.DataFrame(Y)\n",
"pca_df.index = df.index\n",
"pca_df.columns = ['PC1', 'PC2']\n",
"df2 = pd.concat([df, pca_df], axis=1)\n",
"df2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"위 데이터의 PC1, PC2 값으로 scatter plot을 그려봅니다. 1반과 2반의 차이를 알아보기 위해, 각각을 그룹핑하고, 다른 색으로 표시합니다. "
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10f9e4da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def draw_groups(groups, loc):\n",
" fig, ax = plt.subplots()\n",
" ax.margins(0.1)\n",
"\n",
" for name, group in groups:\n",
" ax.plot(group['PC1'], group['PC2'], marker='o', linestyle='', ms=8, label=name)\n",
"\n",
" ax.legend(numpoints=1, loc=loc)\n",
" \n",
"draw_groups(df2.groupby('반'), loc='upper left')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"위 scatter plot에 의하면 `PC1 < 0, PC2 <0` 에 있는 7명의 학생이 어느 정도 비슷한 패턴을 갖는 것으로 보입니다. 이후, 교육 방침을 정하거나, 장래 희망 상담등을 할 때, 이 결과를 이용할 수 있을 것으로 보입니다. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"여기까지, 성적 데이터 분석을 통한 데이터 분석 사례 소개를 마칩니다. 이 예제는 성적이지만, 실제 실무적으로 유사한 데이터가 많습니다. 이들을 분석하는데 도움이 되시길 바랍니다. \n",
"\n",
"--김형용, Insilicogen. Inc., 2016-01-22"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment