{
"cells": [
{
"cell_type": "markdown",
"id": "dbfef547",
"metadata": {},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "99298c2e",
"metadata": {},
"outputs": [],
"source": [
"# 패키지 로딩하기\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import numpy as np # 수학, 선형대수학"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "dbdc21a4",
"metadata": {},
"outputs": [],
"source": [
"# 데이터 읽어오기 : 예제 데이터 : diamonds\n",
"# data = pd.read_excel(io = \"directory/filename.xlsx\",\n",
"# sheet_name = index or \"sheet_name\",\n",
"# header = 0)\n",
"diamonds = sns.load_dataset(\"diamonds\")"
]
},
{
"cell_type": "markdown",
"id": "dccfc100",
"metadata": {},
"source": [
"### 데이터 전처리 : Data Pre-Processing"
]
},
{
"cell_type": "markdown",
"id": "55236610",
"metadata": {},
"source": [
"#### 1. 데이터 보기\n",
"- 전체 보기 : data\n",
"- 일부 보기 : head(), tail()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "eed2fb13",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
" 5.75 | \n",
" 5.76 | \n",
" 3.50 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.75 | \n",
" 3.61 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
" 6.15 | \n",
" 6.12 | \n",
" 3.74 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31\n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31\n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63\n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"53935 0.72 Ideal D SI1 60.8 57.0 2757 5.75 5.76 3.50\n",
"53936 0.72 Good D SI1 63.1 55.0 2757 5.69 5.75 3.61\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"53938 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (1) 전체 보기 : data\n",
"diamonds"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "4213a957",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31\n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31\n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63\n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (2) 일부 보기 : data.head(n = 5) or data.tail(n = 5)\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "2283c0b3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
" 5 | \n",
" 0.24 | \n",
" Very Good | \n",
" J | \n",
" VVS2 | \n",
" 62.8 | \n",
" 57.0 | \n",
" 336 | \n",
" 3.94 | \n",
" 3.96 | \n",
" 2.48 | \n",
"
\n",
" \n",
" 6 | \n",
" 0.24 | \n",
" Very Good | \n",
" I | \n",
" VVS1 | \n",
" 62.3 | \n",
" 57.0 | \n",
" 336 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.47 | \n",
"
\n",
" \n",
" 7 | \n",
" 0.26 | \n",
" Very Good | \n",
" H | \n",
" SI1 | \n",
" 61.9 | \n",
" 55.0 | \n",
" 337 | \n",
" 4.07 | \n",
" 4.11 | \n",
" 2.53 | \n",
"
\n",
" \n",
" 8 | \n",
" 0.22 | \n",
" Fair | \n",
" E | \n",
" VS2 | \n",
" 65.1 | \n",
" 61.0 | \n",
" 337 | \n",
" 3.87 | \n",
" 3.78 | \n",
" 2.49 | \n",
"
\n",
" \n",
" 9 | \n",
" 0.23 | \n",
" Very Good | \n",
" H | \n",
" VS1 | \n",
" 59.4 | \n",
" 61.0 | \n",
" 338 | \n",
" 4.00 | \n",
" 4.05 | \n",
" 2.39 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31\n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31\n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63\n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75\n",
"5 0.24 Very Good J VVS2 62.8 57.0 336 3.94 3.96 2.48\n",
"6 0.24 Very Good I VVS1 62.3 57.0 336 3.95 3.98 2.47\n",
"7 0.26 Very Good H SI1 61.9 55.0 337 4.07 4.11 2.53\n",
"8 0.22 Fair E VS2 65.1 61.0 337 3.87 3.78 2.49\n",
"9 0.23 Very Good H VS1 59.4 61.0 338 4.00 4.05 2.39"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.head(n = 10)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "11b3ce23",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
" 5.75 | \n",
" 5.76 | \n",
" 3.50 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.75 | \n",
" 3.61 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
" 6.15 | \n",
" 6.12 | \n",
" 3.74 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"53935 0.72 Ideal D SI1 60.8 57.0 2757 5.75 5.76 3.50\n",
"53936 0.72 Good D SI1 63.1 55.0 2757 5.69 5.75 3.61\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"53938 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.tail()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "63d6b57e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 53930 | \n",
" 0.71 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 60.5 | \n",
" 55.0 | \n",
" 2756 | \n",
" 5.79 | \n",
" 5.74 | \n",
" 3.49 | \n",
"
\n",
" \n",
" 53931 | \n",
" 0.71 | \n",
" Premium | \n",
" F | \n",
" SI1 | \n",
" 59.8 | \n",
" 62.0 | \n",
" 2756 | \n",
" 5.74 | \n",
" 5.73 | \n",
" 3.43 | \n",
"
\n",
" \n",
" 53932 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 60.5 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.71 | \n",
" 5.76 | \n",
" 3.47 | \n",
"
\n",
" \n",
" 53933 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 61.2 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.72 | \n",
" 3.49 | \n",
"
\n",
" \n",
" 53934 | \n",
" 0.72 | \n",
" Premium | \n",
" D | \n",
" SI1 | \n",
" 62.7 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.73 | \n",
" 3.58 | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
" 5.75 | \n",
" 5.76 | \n",
" 3.50 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.75 | \n",
" 3.61 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
" 6.15 | \n",
" 6.12 | \n",
" 3.74 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"53930 0.71 Premium E SI1 60.5 55.0 2756 5.79 5.74 3.49\n",
"53931 0.71 Premium F SI1 59.8 62.0 2756 5.74 5.73 3.43\n",
"53932 0.70 Very Good E VS2 60.5 59.0 2757 5.71 5.76 3.47\n",
"53933 0.70 Very Good E VS2 61.2 59.0 2757 5.69 5.72 3.49\n",
"53934 0.72 Premium D SI1 62.7 59.0 2757 5.69 5.73 3.58\n",
"53935 0.72 Ideal D SI1 60.8 57.0 2757 5.75 5.76 3.50\n",
"53936 0.72 Good D SI1 63.1 55.0 2757 5.69 5.75 3.61\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"53938 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.tail(n = 10)"
]
},
{
"cell_type": "markdown",
"id": "d27a64eb",
"metadata": {},
"source": [
"#### 2. 데이터의 정보(Information)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "14678143",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 53940 entries, 0 to 53939\n",
"Data columns (total 10 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 carat 53940 non-null float64 \n",
" 1 cut 53940 non-null category\n",
" 2 color 53940 non-null category\n",
" 3 clarity 53940 non-null category\n",
" 4 depth 53940 non-null float64 \n",
" 5 table 53940 non-null float64 \n",
" 6 price 53940 non-null int64 \n",
" 7 x 53940 non-null float64 \n",
" 8 y 53940 non-null float64 \n",
" 9 z 53940 non-null float64 \n",
"dtypes: category(3), float64(6), int64(1)\n",
"memory usage: 3.0 MB\n"
]
}
],
"source": [
"# data.info()\n",
"diamonds.info()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "e9a01b04",
"metadata": {},
"outputs": [],
"source": [
"# \n",
"# DataFrame : 행과 열로 구성됨, 2차원 구조"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "9b1b420f",
"metadata": {},
"outputs": [],
"source": [
"# RangeIndex: 53940 entries, 0 to 53939\n",
"# Index : 행\n",
"# 행 : 0 ~ 53939 : 53,940개"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "4098f9e2",
"metadata": {},
"outputs": [],
"source": [
"# Data columns (total 10 columns)\n",
"# 열 \n",
"# 열의 개수 : 10개"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "4a9982d6",
"metadata": {},
"outputs": [],
"source": [
"# Null : Missing Value : 값이 없는 것 : 결측치, 결측값\n",
"# Non-Null : 값이 있는 것\n",
"\n",
"# 참고 : Missing Value 탐지, 처리\n",
"# 처리 : 삭제(행, 열), 대체(Imputation) : 다른 값으로 바꾸는 것"
]
},
{
"cell_type": "markdown",
"id": "c4caa359",
"metadata": {},
"source": [
"#### 3. 데이터의 속성"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "e291f1d3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"53940"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (1) 데이터의 행과 열, 차원(Dimension)\n",
"# data.shape\n",
"diamonds.shape"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "39142f92",
"metadata": {},
"outputs": [],
"source": [
"# (53940, 10)\n",
"# 53490 : 행의 개수\n",
"# 10 : 열의 개수\n",
"# 숫자가 2개 출력 : 2차원"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "538c22ba",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['carat', 'cut', 'color', 'clarity', 'depth', 'table', 'price', 'x', 'y',\n",
" 'z'],\n",
" dtype='object')"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (2) 열의 이름 : data.columns\n",
"diamonds.columns"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "9f31c4fd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"carat float64\n",
"cut category\n",
"color category\n",
"clarity category\n",
"depth float64\n",
"table float64\n",
"price int64\n",
"x float64\n",
"y float64\n",
"z float64\n",
"dtype: object"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (3) 데이터의 유형 : data.dtypes\n",
"diamonds.dtypes"
]
},
{
"cell_type": "markdown",
"id": "ef4e108e",
"metadata": {},
"source": [
"#### 4. 슬라이싱(Slicing)\n",
"- 열\n",
"- 행\n",
"- 행과 열"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "e43cead8",
"metadata": {},
"outputs": [],
"source": [
"# data.loc[행, 열]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "05403707",
"metadata": {},
"outputs": [],
"source": [
"# (1) 열"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "fb766569",
"metadata": {},
"outputs": [],
"source": [
"# i. 하나의 열 : data[\"열의 이름\"] or data.열의이름"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "f0506d85",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.23\n",
"1 0.21\n",
"2 0.23\n",
"3 0.29\n",
"4 0.31\n",
" ... \n",
"53935 0.72\n",
"53936 0.72\n",
"53937 0.70\n",
"53938 0.86\n",
"53939 0.75\n",
"Name: carat, Length: 53940, dtype: float64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds[\"carat\"]"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "6612a98e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.23\n",
"1 0.21\n",
"2 0.23\n",
"3 0.29\n",
"4 0.31\n",
" ... \n",
"53935 0.72\n",
"53936 0.72\n",
"53937 0.70\n",
"53938 0.86\n",
"53939 0.75\n",
"Name: carat, Length: 53940, dtype: float64"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.carat"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "f90e9358",
"metadata": {},
"outputs": [],
"source": [
"# ii. 2개 이상의 열\n",
"# data[[\"열의이름1\", \"열의이름2\", ...]]\n",
"# data.loc[: , [\"열의이름1\", \"열의이름2\", ...]]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "4e8e0a6e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" price | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" 326 | \n",
" 3.95 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" 326 | \n",
" 3.89 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" 327 | \n",
" 4.05 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" 334 | \n",
" 4.20 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" 335 | \n",
" 4.34 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" 2757 | \n",
" 5.75 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" 2757 | \n",
" 5.69 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" 2757 | \n",
" 5.66 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" 2757 | \n",
" 6.15 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" 2757 | \n",
" 5.83 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 3 columns
\n",
"
"
],
"text/plain": [
" carat price x\n",
"0 0.23 326 3.95\n",
"1 0.21 326 3.89\n",
"2 0.23 327 4.05\n",
"3 0.29 334 4.20\n",
"4 0.31 335 4.34\n",
"... ... ... ...\n",
"53935 0.72 2757 5.75\n",
"53936 0.72 2757 5.69\n",
"53937 0.70 2757 5.66\n",
"53938 0.86 2757 6.15\n",
"53939 0.75 2757 5.83\n",
"\n",
"[53940 rows x 3 columns]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"carat\", \"price\", \"x\"\n",
"diamonds[[\"carat\", \"price\", \"x\"]]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "7536f13a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" price | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" 326 | \n",
" 3.95 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" 326 | \n",
" 3.89 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" 327 | \n",
" 4.05 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" 334 | \n",
" 4.20 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" 335 | \n",
" 4.34 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" 2757 | \n",
" 5.75 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" 2757 | \n",
" 5.69 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" 2757 | \n",
" 5.66 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" 2757 | \n",
" 6.15 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" 2757 | \n",
" 5.83 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 3 columns
\n",
"
"
],
"text/plain": [
" carat price x\n",
"0 0.23 326 3.95\n",
"1 0.21 326 3.89\n",
"2 0.23 327 4.05\n",
"3 0.29 334 4.20\n",
"4 0.31 335 4.34\n",
"... ... ... ...\n",
"53935 0.72 2757 5.75\n",
"53936 0.72 2757 5.69\n",
"53937 0.70 2757 5.66\n",
"53938 0.86 2757 6.15\n",
"53939 0.75 2757 5.83\n",
"\n",
"[53940 rows x 3 columns]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.loc[:, [\"carat\", \"price\", \"x\"]]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "b93e9b2e",
"metadata": {},
"outputs": [],
"source": [
"# iii. 2개 이상의 열 : 열의 이름에 규칙(패턴)이 있는 경우\n",
"# data.filter(regex = \"pattern\")\n",
"\n",
"# 참고 \n",
"# regex : regular expression : 정규 표현식"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "dfaa5682",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 5 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity price\n",
"0 0.23 Ideal E SI2 326\n",
"1 0.21 Premium E SI1 326\n",
"2 0.23 Good E VS1 327\n",
"3 0.29 Premium I VS2 334\n",
"4 0.31 Good J SI2 335\n",
"... ... ... ... ... ...\n",
"53935 0.72 Ideal D SI1 2757\n",
"53936 0.72 Good D SI1 2757\n",
"53937 0.70 Very Good D SI1 2757\n",
"53938 0.86 Premium H SI2 2757\n",
"53939 0.75 Ideal D SI2 2757\n",
"\n",
"[53940 rows x 5 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 포함 : 특정 문자를 포함하고 있는 열\n",
"# 열의 이름 중에서 \"c\"라는 문자를 포함하고 있는 열\n",
"diamonds.filter(regex = \"c\")"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "8b0f0972",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 1 columns
\n",
"
"
],
"text/plain": [
" price\n",
"0 326\n",
"1 326\n",
"2 327\n",
"3 334\n",
"4 335\n",
"... ...\n",
"53935 2757\n",
"53936 2757\n",
"53937 2757\n",
"53938 2757\n",
"53939 2757\n",
"\n",
"[53940 rows x 1 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 열의 이름 중에 \"ce\" 문자를 포함하는 열\n",
"diamonds.filter(regex = \"ce\")"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "f7ebb21f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 7 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price\n",
"0 0.23 Ideal E SI2 61.5 55.0 326\n",
"1 0.21 Premium E SI1 59.8 61.0 326\n",
"2 0.23 Good E VS1 56.9 65.0 327\n",
"3 0.29 Premium I VS2 62.4 58.0 334\n",
"4 0.31 Good J SI2 63.3 58.0 335\n",
"... ... ... ... ... ... ... ...\n",
"53935 0.72 Ideal D SI1 60.8 57.0 2757\n",
"53936 0.72 Good D SI1 63.1 55.0 2757\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757\n",
"53938 0.86 Premium H SI2 61.0 58.0 2757\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757\n",
"\n",
"[53940 rows x 7 columns]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 열의 이름 중에 \"c\" 또는 \"e\"라는 문자를 포함하는 열\n",
"diamonds.filter(regex = \"[ce]\")"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "98ae83af",
"metadata": {},
"outputs": [],
"source": [
"# 시작 : 특정 문자로 시작하는 열의 이름\n",
"# data.filter(regex = \"^pattern\")"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "4e740c74",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 4 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity\n",
"0 0.23 Ideal E SI2\n",
"1 0.21 Premium E SI1\n",
"2 0.23 Good E VS1\n",
"3 0.29 Premium I VS2\n",
"4 0.31 Good J SI2\n",
"... ... ... ... ...\n",
"53935 0.72 Ideal D SI1\n",
"53936 0.72 Good D SI1\n",
"53937 0.70 Very Good D SI1\n",
"53938 0.86 Premium H SI2\n",
"53939 0.75 Ideal D SI2\n",
"\n",
"[53940 rows x 4 columns]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"c\"라는 문자로 시작하는 열\n",
"diamonds.filter(regex = \"^c\")"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "2a1e6a14",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 1 columns
\n",
"
"
],
"text/plain": [
" price\n",
"0 326\n",
"1 326\n",
"2 327\n",
"3 334\n",
"4 335\n",
"... ...\n",
"53935 2757\n",
"53936 2757\n",
"53937 2757\n",
"53938 2757\n",
"53939 2757\n",
"\n",
"[53940 rows x 1 columns]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"pr\"로 시작하는 열\n",
"diamonds.filter(regex = \"^pr\")"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "c461b72a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 5 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity price\n",
"0 0.23 Ideal E SI2 326\n",
"1 0.21 Premium E SI1 326\n",
"2 0.23 Good E VS1 327\n",
"3 0.29 Premium I VS2 334\n",
"4 0.31 Good J SI2 335\n",
"... ... ... ... ... ...\n",
"53935 0.72 Ideal D SI1 2757\n",
"53936 0.72 Good D SI1 2757\n",
"53937 0.70 Very Good D SI1 2757\n",
"53938 0.86 Premium H SI2 2757\n",
"53939 0.75 Ideal D SI2 2757\n",
"\n",
"[53940 rows x 5 columns]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"c\" 또는 \"p\"로 시작하는 열\n",
"diamonds.filter(regex = \"^[cp]\")"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "507b5ed9",
"metadata": {},
"outputs": [],
"source": [
"# 특정한 문자로 끝나는 열 \n",
"# data.filter(regex = \"pattern$\")"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "c8f34c82",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" table | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 55.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 61.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 65.0 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 58.0 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 58.0 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 57.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 60.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 58.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 2 columns
\n",
"
"
],
"text/plain": [
" table price\n",
"0 55.0 326\n",
"1 61.0 326\n",
"2 65.0 327\n",
"3 58.0 334\n",
"4 58.0 335\n",
"... ... ...\n",
"53935 57.0 2757\n",
"53936 55.0 2757\n",
"53937 60.0 2757\n",
"53938 58.0 2757\n",
"53939 55.0 2757\n",
"\n",
"[53940 rows x 2 columns]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"e\"로 끝나는 열\n",
"diamonds.filter(regex = \"e$\")"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "7902983a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" table | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 55.0 | \n",
"
\n",
" \n",
" 1 | \n",
" 61.0 | \n",
"
\n",
" \n",
" 2 | \n",
" 65.0 | \n",
"
\n",
" \n",
" 3 | \n",
" 58.0 | \n",
"
\n",
" \n",
" 4 | \n",
" 58.0 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 57.0 | \n",
"
\n",
" \n",
" 53936 | \n",
" 55.0 | \n",
"
\n",
" \n",
" 53937 | \n",
" 60.0 | \n",
"
\n",
" \n",
" 53938 | \n",
" 58.0 | \n",
"
\n",
" \n",
" 53939 | \n",
" 55.0 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 1 columns
\n",
"
"
],
"text/plain": [
" table\n",
"0 55.0\n",
"1 61.0\n",
"2 65.0\n",
"3 58.0\n",
"4 58.0\n",
"... ...\n",
"53935 57.0\n",
"53936 55.0\n",
"53937 60.0\n",
"53938 58.0\n",
"53939 55.0\n",
"\n",
"[53940 rows x 1 columns]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"le\"로 끝나는 열\n",
"diamonds.filter(regex = \"le$\")"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "53804f28",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" table | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" 55.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" 61.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" 65.0 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" 58.0 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" 58.0 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" 57.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" 60.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" 58.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 4 columns
\n",
"
"
],
"text/plain": [
" carat cut table price\n",
"0 0.23 Ideal 55.0 326\n",
"1 0.21 Premium 61.0 326\n",
"2 0.23 Good 65.0 327\n",
"3 0.29 Premium 58.0 334\n",
"4 0.31 Good 58.0 335\n",
"... ... ... ... ...\n",
"53935 0.72 Ideal 57.0 2757\n",
"53936 0.72 Good 55.0 2757\n",
"53937 0.70 Very Good 60.0 2757\n",
"53938 0.86 Premium 58.0 2757\n",
"53939 0.75 Ideal 55.0 2757\n",
"\n",
"[53940 rows x 4 columns]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# \"t\" 또는 \"e\"로 끝나는 열\n",
"diamonds.filter(regex = \"[te]$\")"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "0ad7277c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 1 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
"
\n",
" \n",
" 2 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
"
\n",
" \n",
" 3 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
"
\n",
" \n",
" 4 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53936 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53937 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53938 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
"
\n",
" \n",
" 53939 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 6 columns
\n",
"
"
],
"text/plain": [
" cut color clarity depth table price\n",
"0 Ideal E SI2 61.5 55.0 326\n",
"1 Premium E SI1 59.8 61.0 326\n",
"2 Good E VS1 56.9 65.0 327\n",
"3 Premium I VS2 62.4 58.0 334\n",
"4 Good J SI2 63.3 58.0 335\n",
"... ... ... ... ... ... ...\n",
"53935 Ideal D SI1 60.8 57.0 2757\n",
"53936 Good D SI1 63.1 55.0 2757\n",
"53937 Very Good D SI1 62.8 60.0 2757\n",
"53938 Premium H SI2 61.0 58.0 2757\n",
"53939 Ideal D SI2 62.2 55.0 2757\n",
"\n",
"[53940 rows x 6 columns]"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 연달아 있는 열을 슬라이싱\n",
"# \"cut\" ~ \"price\"\n",
"# data.loc[: , \"start\":\"end\"]\n",
"diamonds.loc[:, \"cut\":\"price\"]"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "737426e5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 Ideal\n",
"1 Premium\n",
"2 Good\n",
"3 Premium\n",
"4 Good\n",
" ... \n",
"53935 Ideal\n",
"53936 Good\n",
"53937 Very Good\n",
"53938 Premium\n",
"53939 Ideal\n",
"Name: cut, Length: 53940, dtype: category\n",
"Categories (5, object): ['Ideal', 'Premium', 'Very Good', 'Good', 'Fair']"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 참고 : data.iloc[: , index]\n",
"diamonds.iloc[:, 1]"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "1d7f070d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" 3.95 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" 3.89 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" 4.05 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" 4.20 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" 4.34 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" 5.75 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" 5.69 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" 5.66 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" 6.15 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" 5.83 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 3 columns
\n",
"
"
],
"text/plain": [
" carat cut x\n",
"0 0.23 Ideal 3.95\n",
"1 0.21 Premium 3.89\n",
"2 0.23 Good 4.05\n",
"3 0.29 Premium 4.20\n",
"4 0.31 Good 4.34\n",
"... ... ... ...\n",
"53935 0.72 Ideal 5.75\n",
"53936 0.72 Good 5.69\n",
"53937 0.70 Very Good 5.66\n",
"53938 0.86 Premium 6.15\n",
"53939 0.75 Ideal 5.83\n",
"\n",
"[53940 rows x 3 columns]"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.iloc[:, [0, 1, 7]]"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "9d73b309",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" cut | \n",
" color | \n",
" clarity | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
"
\n",
" \n",
" 1 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
"
\n",
" \n",
" 2 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
"
\n",
" \n",
" 3 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
"
\n",
" \n",
" 4 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
"
\n",
" \n",
" 53936 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
"
\n",
" \n",
" 53937 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
"
\n",
" \n",
" 53938 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
"
\n",
" \n",
" 53939 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 3 columns
\n",
"
"
],
"text/plain": [
" cut color clarity\n",
"0 Ideal E SI2\n",
"1 Premium E SI1\n",
"2 Good E VS1\n",
"3 Premium I VS2\n",
"4 Good J SI2\n",
"... ... ... ...\n",
"53935 Ideal D SI1\n",
"53936 Good D SI1\n",
"53937 Very Good D SI1\n",
"53938 Premium H SI2\n",
"53939 Ideal D SI2\n",
"\n",
"[53940 rows x 3 columns]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.iloc[:, 1:4]"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "e2e993e2",
"metadata": {},
"outputs": [],
"source": [
"# (2) 행\n",
"# data.loc[조건, :]"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "20971079",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
" 5.75 | \n",
" 5.76 | \n",
" 3.50 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.75 | \n",
" 3.61 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
" 6.15 | \n",
" 6.12 | \n",
" 3.74 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
52051 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31\n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31\n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63\n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"53935 0.72 Ideal D SI1 60.8 57.0 2757 5.75 5.76 3.50\n",
"53936 0.72 Good D SI1 63.1 55.0 2757 5.69 5.75 3.61\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"53938 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64\n",
"\n",
"[52051 rows x 10 columns]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# carat이 2이하인 데이터\n",
"diamonds.loc[diamonds[\"carat\"] <= 2, :]"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "b1119e30",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 0.24 | \n",
" Very Good | \n",
" J | \n",
" VVS2 | \n",
" 62.8 | \n",
" 57.0 | \n",
" 336 | \n",
" 3.94 | \n",
" 3.96 | \n",
" 2.48 | \n",
"
\n",
" \n",
" 6 | \n",
" 0.24 | \n",
" Very Good | \n",
" I | \n",
" VVS1 | \n",
" 62.3 | \n",
" 57.0 | \n",
" 336 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.47 | \n",
"
\n",
" \n",
" 7 | \n",
" 0.26 | \n",
" Very Good | \n",
" H | \n",
" SI1 | \n",
" 61.9 | \n",
" 55.0 | \n",
" 337 | \n",
" 4.07 | \n",
" 4.11 | \n",
" 2.53 | \n",
"
\n",
" \n",
" 9 | \n",
" 0.23 | \n",
" Very Good | \n",
" H | \n",
" VS1 | \n",
" 59.4 | \n",
" 61.0 | \n",
" 338 | \n",
" 4.00 | \n",
" 4.05 | \n",
" 2.39 | \n",
"
\n",
" \n",
" 19 | \n",
" 0.30 | \n",
" Very Good | \n",
" J | \n",
" SI1 | \n",
" 62.7 | \n",
" 59.0 | \n",
" 351 | \n",
" 4.21 | \n",
" 4.27 | \n",
" 2.66 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53921 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2755 | \n",
" 5.59 | \n",
" 5.65 | \n",
" 3.53 | \n",
"
\n",
" \n",
" 53922 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" VS1 | \n",
" 63.1 | \n",
" 59.0 | \n",
" 2755 | \n",
" 5.67 | \n",
" 5.58 | \n",
" 3.55 | \n",
"
\n",
" \n",
" 53932 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 60.5 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.71 | \n",
" 5.76 | \n",
" 3.47 | \n",
"
\n",
" \n",
" 53933 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 61.2 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.72 | \n",
" 3.49 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
"
\n",
"
12082 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"5 0.24 Very Good J VVS2 62.8 57.0 336 3.94 3.96 2.48\n",
"6 0.24 Very Good I VVS1 62.3 57.0 336 3.95 3.98 2.47\n",
"7 0.26 Very Good H SI1 61.9 55.0 337 4.07 4.11 2.53\n",
"9 0.23 Very Good H VS1 59.4 61.0 338 4.00 4.05 2.39\n",
"19 0.30 Very Good J SI1 62.7 59.0 351 4.21 4.27 2.66\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"53921 0.70 Very Good E VS2 62.8 60.0 2755 5.59 5.65 3.53\n",
"53922 0.70 Very Good D VS1 63.1 59.0 2755 5.67 5.58 3.55\n",
"53932 0.70 Very Good E VS2 60.5 59.0 2757 5.71 5.76 3.47\n",
"53933 0.70 Very Good E VS2 61.2 59.0 2757 5.69 5.72 3.49\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"\n",
"[12082 rows x 10 columns]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# cut이 \"Very Good\"인 데이터\n",
"diamonds.loc[diamonds.cut == \"Very Good\", :]"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "185cebe9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 0.24 | \n",
" Very Good | \n",
" J | \n",
" VVS2 | \n",
" 62.8 | \n",
" 57.0 | \n",
" 336 | \n",
" 3.94 | \n",
" 3.96 | \n",
" 2.48 | \n",
"
\n",
" \n",
" 6 | \n",
" 0.24 | \n",
" Very Good | \n",
" I | \n",
" VVS1 | \n",
" 62.3 | \n",
" 57.0 | \n",
" 336 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.47 | \n",
"
\n",
" \n",
" 7 | \n",
" 0.26 | \n",
" Very Good | \n",
" H | \n",
" SI1 | \n",
" 61.9 | \n",
" 55.0 | \n",
" 337 | \n",
" 4.07 | \n",
" 4.11 | \n",
" 2.53 | \n",
"
\n",
" \n",
" 9 | \n",
" 0.23 | \n",
" Very Good | \n",
" H | \n",
" VS1 | \n",
" 59.4 | \n",
" 61.0 | \n",
" 338 | \n",
" 4.00 | \n",
" 4.05 | \n",
" 2.39 | \n",
"
\n",
" \n",
" 19 | \n",
" 0.30 | \n",
" Very Good | \n",
" J | \n",
" SI1 | \n",
" 62.7 | \n",
" 59.0 | \n",
" 351 | \n",
" 4.21 | \n",
" 4.27 | \n",
" 2.66 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53921 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2755 | \n",
" 5.59 | \n",
" 5.65 | \n",
" 3.53 | \n",
"
\n",
" \n",
" 53922 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" VS1 | \n",
" 63.1 | \n",
" 59.0 | \n",
" 2755 | \n",
" 5.67 | \n",
" 5.58 | \n",
" 3.55 | \n",
"
\n",
" \n",
" 53932 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 60.5 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.71 | \n",
" 5.76 | \n",
" 3.47 | \n",
"
\n",
" \n",
" 53933 | \n",
" 0.70 | \n",
" Very Good | \n",
" E | \n",
" VS2 | \n",
" 61.2 | \n",
" 59.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.72 | \n",
" 3.49 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
"
\n",
"
11694 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"5 0.24 Very Good J VVS2 62.8 57.0 336 3.94 3.96 2.48\n",
"6 0.24 Very Good I VVS1 62.3 57.0 336 3.95 3.98 2.47\n",
"7 0.26 Very Good H SI1 61.9 55.0 337 4.07 4.11 2.53\n",
"9 0.23 Very Good H VS1 59.4 61.0 338 4.00 4.05 2.39\n",
"19 0.30 Very Good J SI1 62.7 59.0 351 4.21 4.27 2.66\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"53921 0.70 Very Good E VS2 62.8 60.0 2755 5.59 5.65 3.53\n",
"53922 0.70 Very Good D VS1 63.1 59.0 2755 5.67 5.58 3.55\n",
"53932 0.70 Very Good E VS2 60.5 59.0 2757 5.71 5.76 3.47\n",
"53933 0.70 Very Good E VS2 61.2 59.0 2757 5.69 5.72 3.49\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"\n",
"[11694 rows x 10 columns]"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# carat이 2이하이고, cut은 \"Very Good\"인 데이터\n",
"diamonds.loc[(diamonds.carat <= 2) & (diamonds.cut == \"Very Good\"), :]"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "f64edb58",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 0.72 | \n",
" Ideal | \n",
" D | \n",
" SI1 | \n",
" 60.8 | \n",
" 57.0 | \n",
" 2757 | \n",
" 5.75 | \n",
" 5.76 | \n",
" 3.50 | \n",
"
\n",
" \n",
" 53936 | \n",
" 0.72 | \n",
" Good | \n",
" D | \n",
" SI1 | \n",
" 63.1 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.69 | \n",
" 5.75 | \n",
" 3.61 | \n",
"
\n",
" \n",
" 53937 | \n",
" 0.70 | \n",
" Very Good | \n",
" D | \n",
" SI1 | \n",
" 62.8 | \n",
" 60.0 | \n",
" 2757 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
" 53938 | \n",
" 0.86 | \n",
" Premium | \n",
" H | \n",
" SI2 | \n",
" 61.0 | \n",
" 58.0 | \n",
" 2757 | \n",
" 6.15 | \n",
" 6.12 | \n",
" 3.74 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
52439 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31\n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31\n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63\n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"53935 0.72 Ideal D SI1 60.8 57.0 2757 5.75 5.76 3.50\n",
"53936 0.72 Good D SI1 63.1 55.0 2757 5.69 5.75 3.61\n",
"53937 0.70 Very Good D SI1 62.8 60.0 2757 5.66 5.68 3.56\n",
"53938 0.86 Premium H SI2 61.0 58.0 2757 6.15 6.12 3.74\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64\n",
"\n",
"[52439 rows x 10 columns]"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# carat이 2이하이거나 또는 cut이 \"Very Good\"인 데이터\n",
"diamonds.loc[(diamonds.carat <= 2) | (diamonds.cut == \"Very Good\"), :]"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "5e3ae42e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 53935 | \n",
" 5.75 | \n",
" 5.76 | \n",
" 3.50 | \n",
"
\n",
" \n",
" 53936 | \n",
" 5.69 | \n",
" 5.75 | \n",
" 3.61 | \n",
"
\n",
" \n",
" 53937 | \n",
" 5.66 | \n",
" 5.68 | \n",
" 3.56 | \n",
"
\n",
" \n",
" 53938 | \n",
" 6.15 | \n",
" 6.12 | \n",
" 3.74 | \n",
"
\n",
" \n",
" 53939 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
52439 rows × 3 columns
\n",
"
"
],
"text/plain": [
" x y z\n",
"0 3.95 3.98 2.43\n",
"1 3.89 3.84 2.31\n",
"2 4.05 4.07 2.31\n",
"3 4.20 4.23 2.63\n",
"4 4.34 4.35 2.75\n",
"... ... ... ...\n",
"53935 5.75 5.76 3.50\n",
"53936 5.69 5.75 3.61\n",
"53937 5.66 5.68 3.56\n",
"53938 6.15 6.12 3.74\n",
"53939 5.83 5.87 3.64\n",
"\n",
"[52439 rows x 3 columns]"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (3) 행과 열\n",
"# carat이 2이하이거나 또는 cut이 \"Very Good\"인 데이터의 \"x\", \"y\", \"z\"\n",
"diamonds.loc[(diamonds.carat <= 2) | (diamonds.cut == \"Very Good\"), \"x\":\"z\"]"
]
},
{
"cell_type": "markdown",
"id": "983b72ce",
"metadata": {},
"source": [
"#### 5. 새로운 열(변수) 만들기\n",
"- 연산\n",
"- 변환 : 로그, 루트, 역수 : Cox-Box Transformation\n",
"- 범주 줄이기\n",
"- 범주화"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "035f4543",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat \n",
"0 1417.391304 \n",
"1 1552.380952 \n",
"2 1421.739130 \n",
"3 1151.724138 \n",
"4 1080.645161 "
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (1) 연산 : price_per_carat : price/carat\n",
"# data[\"새로운 열의 이름\"] = 연산\n",
"diamonds[\"price_per_carat\"] = diamonds.price/diamonds.carat\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "9f2536dc",
"metadata": {},
"outputs": [],
"source": [
"# (2) Box-Cox 변환(Transformation) : 로그, 루트, 역수\n",
"# 참고\n",
"# 변환을 하는 이유는 주로 대칭을 확보하기 위해서"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "b7c7754a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
" price_log10 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
" 2.513218 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
" 2.513218 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
" 2.514548 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
" 2.523746 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
" 2.525045 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat price_log10 \n",
"0 1417.391304 2.513218 \n",
"1 1552.380952 2.513218 \n",
"2 1421.739130 2.514548 \n",
"3 1151.724138 2.523746 \n",
"4 1080.645161 2.525045 "
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# i. 로그(Log) 변환\n",
"# data[\"새로운 열의 이름\"] = numpy.log10(data[\"열의 이름\"])\n",
"diamonds[\"price_log10\"] = np.log10(diamonds.price)\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "b1fb3070",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
" price_log10 | \n",
" price_root | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
" 2.514548 | \n",
" 18.083141 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
" 2.523746 | \n",
" 18.275667 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
" 2.525045 | \n",
" 18.303005 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat price_log10 price_root \n",
"0 1417.391304 2.513218 18.055470 \n",
"1 1552.380952 2.513218 18.055470 \n",
"2 1421.739130 2.514548 18.083141 \n",
"3 1151.724138 2.523746 18.275667 \n",
"4 1080.645161 2.525045 18.303005 "
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ii. 루트(Root) 변환\n",
"# data[\"새로운 열의 이름\"] = np.sqrt(data[\"열의이름\"])\n",
"# 참고 : sqrt : square root\n",
"\n",
"diamonds[\"price_root\"] = np.sqrt(diamonds.price)\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "45d2d814",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
" price_log10 | \n",
" price_root | \n",
" price_inverse | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
" 2.514548 | \n",
" 18.083141 | \n",
" 0.003058 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
" 2.523746 | \n",
" 18.275667 | \n",
" 0.002994 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
" 2.525045 | \n",
" 18.303005 | \n",
" 0.002985 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat price_log10 price_root price_inverse \n",
"0 1417.391304 2.513218 18.055470 0.003067 \n",
"1 1552.380952 2.513218 18.055470 0.003067 \n",
"2 1421.739130 2.514548 18.083141 0.003058 \n",
"3 1151.724138 2.523746 18.275667 0.002994 \n",
"4 1080.645161 2.525045 18.303005 0.002985 "
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# iii. 역수(Inverse) 변환\n",
"# data[\"새로운 열의 이름\"] = 1/data[\"열의이름\"]\n",
"diamonds[\"price_inverse\"] = 1 / diamonds.price\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 73,
"id": "e64460c8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
" price_log10 | \n",
" price_root | \n",
" price_inverse | \n",
" cut2 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" Ideal | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" NonIdeal | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
" 2.514548 | \n",
" 18.083141 | \n",
" 0.003058 | \n",
" NonIdeal | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
" 2.523746 | \n",
" 18.275667 | \n",
" 0.002994 | \n",
" NonIdeal | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
" 2.525045 | \n",
" 18.303005 | \n",
" 0.002985 | \n",
" NonIdeal | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat price_log10 price_root price_inverse cut2 \n",
"0 1417.391304 2.513218 18.055470 0.003067 Ideal \n",
"1 1552.380952 2.513218 18.055470 0.003067 NonIdeal \n",
"2 1421.739130 2.514548 18.083141 0.003058 NonIdeal \n",
"3 1151.724138 2.523746 18.275667 0.002994 NonIdeal \n",
"4 1080.645161 2.525045 18.303005 0.002985 NonIdeal "
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (3) 범주(Category) 줄이기\n",
"# cut : 다이아몬드의 품질, 5개의 범주\n",
"# \"Fair\", \"Good\", \"Very Good\", \"Premium\", \"Ideal\"\n",
"\n",
"# cut2 : \"Ideal\", \"NonIdeal\"\n",
"\n",
"# data[\"새로운 열의 이름\"] = data[\"열의이름\"].apply(lambda x : \"Ideal\" if x == \"Ideal\" else \"NonIdeal\")\n",
"diamonds[\"cut2\"] = diamonds[\"cut\"].apply(lambda x : \"Ideal\" if x == \"Ideal\" else \"NonIdeal\")\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "c23058f9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
" price_log10 | \n",
" price_root | \n",
" price_inverse | \n",
" cut2 | \n",
" cut3 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" Ideal | \n",
" Ideal | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" NonIdeal | \n",
" Premium | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
" 2.514548 | \n",
" 18.083141 | \n",
" 0.003058 | \n",
" NonIdeal | \n",
" ETC | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
" 2.523746 | \n",
" 18.275667 | \n",
" 0.002994 | \n",
" NonIdeal | \n",
" Premium | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
" 2.525045 | \n",
" 18.303005 | \n",
" 0.002985 | \n",
" NonIdeal | \n",
" ETC | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat price_log10 price_root price_inverse cut2 cut3 \n",
"0 1417.391304 2.513218 18.055470 0.003067 Ideal Ideal \n",
"1 1552.380952 2.513218 18.055470 0.003067 NonIdeal Premium \n",
"2 1421.739130 2.514548 18.083141 0.003058 NonIdeal ETC \n",
"3 1151.724138 2.523746 18.275667 0.002994 NonIdeal Premium \n",
"4 1080.645161 2.525045 18.303005 0.002985 NonIdeal ETC "
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# cut3 : \"Ideal\", \"Premium\", \"ETC\"\n",
"diamonds[\"cut3\"] = diamonds[\"cut\"].apply(lambda x : \"Ideal\" if x == \"Ideal\" else \"Premium\" if x == \"Premium\" else \"ETC\")\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "2585c8fd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_per_carat | \n",
" price_log10 | \n",
" price_root | \n",
" price_inverse | \n",
" cut2 | \n",
" cut3 | \n",
" price_group | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 1417.391304 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" Ideal | \n",
" Ideal | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 1552.380952 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" NonIdeal | \n",
" Premium | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 1421.739130 | \n",
" 2.514548 | \n",
" 18.083141 | \n",
" 0.003058 | \n",
" NonIdeal | \n",
" ETC | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 1151.724138 | \n",
" 2.523746 | \n",
" 18.275667 | \n",
" 0.002994 | \n",
" NonIdeal | \n",
" Premium | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 1080.645161 | \n",
" 2.525045 | \n",
" 18.303005 | \n",
" 0.002985 | \n",
" NonIdeal | \n",
" ETC | \n",
" Very Cheap | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_per_carat price_log10 price_root price_inverse cut2 cut3 \\\n",
"0 1417.391304 2.513218 18.055470 0.003067 Ideal Ideal \n",
"1 1552.380952 2.513218 18.055470 0.003067 NonIdeal Premium \n",
"2 1421.739130 2.514548 18.083141 0.003058 NonIdeal ETC \n",
"3 1151.724138 2.523746 18.275667 0.002994 NonIdeal Premium \n",
"4 1080.645161 2.525045 18.303005 0.002985 NonIdeal ETC \n",
"\n",
" price_group \n",
"0 Very Cheap \n",
"1 Very Cheap \n",
"2 Very Cheap \n",
"3 Very Cheap \n",
"4 Very Cheap "
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (4) 범주화 : 수치형(숫자) --> 범주형\n",
"# price(수치형) --> price_group(범주형)\n",
"# 0 이상 ~ 5000 미만 --> \"Very Cheap\"\n",
"# 5000 이상 ~ 10000 미만 --> \"Cheap\"\n",
"# 10000 이상 ~ 15000 미만 --> \"Expensive\"\n",
"# 15000 이상 ~ 20000 미만 --> \"Very Expensive\"\n",
"\n",
"# data[\"새로운 열의 이름\"] = pandas.cut(data[\"열의이름\"],\n",
"# bins = 구간의 정보,\n",
"# right = True or False,\n",
"# labels = 범주의 이름)\n",
"\n",
"diamonds[\"price_group\"] = pd.cut(diamonds.price,\n",
" bins = [0, 5000, 10000, 15000, 20000],\n",
" right = False,\n",
" labels = [\"Very Cheap\", \"Cheap\", \"Expensive\", \"Very Expensive\"])\n",
"\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "eb9444a8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0, 5000, 10000, 15000, 20000])"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 규칙이 있는 2개 이상의 숫자를 만들 때\n",
"# numpy.arange(start = 숫자, stop = 숫자, step = 증가의 폭)\n",
"np.arange(start = 0, stop = 25000, step = 5000)"
]
},
{
"cell_type": "markdown",
"id": "2fb04c49",
"metadata": {},
"source": [
"#### 6. 열 삭제하기\n",
"- 하나의 열\n",
"- 2개 이상의 열"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "bdcfc650",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['carat', 'cut', 'color', 'clarity', 'depth', 'table', 'price', 'x', 'y',\n",
" 'z', 'price_per_carat', 'price_log10', 'price_root', 'price_inverse',\n",
" 'cut2', 'cut3', 'price_group'],\n",
" dtype='object')"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diamonds.columns"
]
},
{
"cell_type": "code",
"execution_count": 80,
"id": "9f4905c9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
" price_log10 | \n",
" price_root | \n",
" price_inverse | \n",
" cut2 | \n",
" cut3 | \n",
" price_group | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" Ideal | \n",
" Ideal | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
" 2.513218 | \n",
" 18.055470 | \n",
" 0.003067 | \n",
" NonIdeal | \n",
" Premium | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
" 2.514548 | \n",
" 18.083141 | \n",
" 0.003058 | \n",
" NonIdeal | \n",
" ETC | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
" 2.523746 | \n",
" 18.275667 | \n",
" 0.002994 | \n",
" NonIdeal | \n",
" Premium | \n",
" Very Cheap | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
" 2.525045 | \n",
" 18.303005 | \n",
" 0.002985 | \n",
" NonIdeal | \n",
" ETC | \n",
" Very Cheap | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z \\\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43 \n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31 \n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31 \n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63 \n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75 \n",
"\n",
" price_log10 price_root price_inverse cut2 cut3 price_group \n",
"0 2.513218 18.055470 0.003067 Ideal Ideal Very Cheap \n",
"1 2.513218 18.055470 0.003067 NonIdeal Premium Very Cheap \n",
"2 2.514548 18.083141 0.003058 NonIdeal ETC Very Cheap \n",
"3 2.523746 18.275667 0.002994 NonIdeal Premium Very Cheap \n",
"4 2.525045 18.303005 0.002985 NonIdeal ETC Very Cheap "
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (1) 하나의 열 삭제하기 : del data[\"열의 이름\"]\n",
"del diamonds[\"price_per_carat\"]\n",
"diamonds.head()"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "81526269",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.21 | \n",
" Premium | \n",
" E | \n",
" SI1 | \n",
" 59.8 | \n",
" 61.0 | \n",
" 326 | \n",
" 3.89 | \n",
" 3.84 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.23 | \n",
" Good | \n",
" E | \n",
" VS1 | \n",
" 56.9 | \n",
" 65.0 | \n",
" 327 | \n",
" 4.05 | \n",
" 4.07 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.29 | \n",
" Premium | \n",
" I | \n",
" VS2 | \n",
" 62.4 | \n",
" 58.0 | \n",
" 334 | \n",
" 4.20 | \n",
" 4.23 | \n",
" 2.63 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.31 | \n",
" Good | \n",
" J | \n",
" SI2 | \n",
" 63.3 | \n",
" 58.0 | \n",
" 335 | \n",
" 4.34 | \n",
" 4.35 | \n",
" 2.75 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31\n",
"2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31\n",
"3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63\n",
"4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (2) 2개 이상의 열 삭제하기\n",
"# data.drop(columns = [\"열의 이름1\", ...], inplace = True or False)\n",
"# inplace = True : 해당 열을 삭제했을 때에 data에도 그 결과가 반영되도록 함\n",
"\n",
"diamonds.drop(columns = [\"price_log10\", \"price_root\", \"price_inverse\", \"cut2\", \"cut3\", \"price_group\"],\n",
" inplace = True)\n",
"diamonds.head()"
]
},
{
"cell_type": "markdown",
"id": "432d4dc9",
"metadata": {},
"source": [
"#### 7. 정렬하기\n",
"- 리스트 정렬하기\n",
"- 데이터프레임 정렬하기"
]
},
{
"cell_type": "code",
"execution_count": 82,
"id": "061b1a5b",
"metadata": {},
"outputs": [],
"source": [
"# (1) list 정렬하기\n",
"# list.sort(reverse = True or False)"
]
},
{
"cell_type": "code",
"execution_count": 83,
"id": "d1251b5f",
"metadata": {},
"outputs": [],
"source": [
"walk = [30, 40, 20, 30, 30, 60]"
]
},
{
"cell_type": "code",
"execution_count": 87,
"id": "72f38e29",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[20, 30, 30, 30, 40, 60]"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 오름차순\n",
"walk.sort(reverse = False)\n",
"walk"
]
},
{
"cell_type": "code",
"execution_count": 88,
"id": "7cddd7cb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[60, 40, 30, 30, 30, 20]"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 내림차순\n",
"walk.sort(reverse = True)\n",
"walk"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "ed5de263",
"metadata": {},
"outputs": [],
"source": [
"# (2) 데이터 프레임\n",
"# data.sort_values(by = 정렬한 열의 이름, ascending = True or False)"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "a32dbd89",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 31593 | \n",
" 0.20 | \n",
" Premium | \n",
" E | \n",
" VS2 | \n",
" 61.1 | \n",
" 59.0 | \n",
" 367 | \n",
" 3.81 | \n",
" 3.78 | \n",
" 2.32 | \n",
"
\n",
" \n",
" 31597 | \n",
" 0.20 | \n",
" Ideal | \n",
" D | \n",
" VS2 | \n",
" 61.5 | \n",
" 57.0 | \n",
" 367 | \n",
" 3.81 | \n",
" 3.77 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 31596 | \n",
" 0.20 | \n",
" Premium | \n",
" F | \n",
" VS2 | \n",
" 62.6 | \n",
" 59.0 | \n",
" 367 | \n",
" 3.73 | \n",
" 3.71 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 31595 | \n",
" 0.20 | \n",
" Ideal | \n",
" E | \n",
" VS2 | \n",
" 59.7 | \n",
" 55.0 | \n",
" 367 | \n",
" 3.86 | \n",
" 3.84 | \n",
" 2.30 | \n",
"
\n",
" \n",
" 31594 | \n",
" 0.20 | \n",
" Premium | \n",
" E | \n",
" VS2 | \n",
" 59.7 | \n",
" 62.0 | \n",
" 367 | \n",
" 3.84 | \n",
" 3.80 | \n",
" 2.28 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 25999 | \n",
" 4.01 | \n",
" Premium | \n",
" J | \n",
" I1 | \n",
" 62.5 | \n",
" 62.0 | \n",
" 15223 | \n",
" 10.02 | \n",
" 9.94 | \n",
" 6.24 | \n",
"
\n",
" \n",
" 25998 | \n",
" 4.01 | \n",
" Premium | \n",
" I | \n",
" I1 | \n",
" 61.0 | \n",
" 61.0 | \n",
" 15223 | \n",
" 10.14 | \n",
" 10.10 | \n",
" 6.17 | \n",
"
\n",
" \n",
" 27130 | \n",
" 4.13 | \n",
" Fair | \n",
" H | \n",
" I1 | \n",
" 64.8 | \n",
" 61.0 | \n",
" 17329 | \n",
" 10.00 | \n",
" 9.85 | \n",
" 6.43 | \n",
"
\n",
" \n",
" 27630 | \n",
" 4.50 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.8 | \n",
" 58.0 | \n",
" 18531 | \n",
" 10.23 | \n",
" 10.16 | \n",
" 6.72 | \n",
"
\n",
" \n",
" 27415 | \n",
" 5.01 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.5 | \n",
" 59.0 | \n",
" 18018 | \n",
" 10.74 | \n",
" 10.54 | \n",
" 6.98 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"31593 0.20 Premium E VS2 61.1 59.0 367 3.81 3.78 2.32\n",
"31597 0.20 Ideal D VS2 61.5 57.0 367 3.81 3.77 2.33\n",
"31596 0.20 Premium F VS2 62.6 59.0 367 3.73 3.71 2.33\n",
"31595 0.20 Ideal E VS2 59.7 55.0 367 3.86 3.84 2.30\n",
"31594 0.20 Premium E VS2 59.7 62.0 367 3.84 3.80 2.28\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"25999 4.01 Premium J I1 62.5 62.0 15223 10.02 9.94 6.24\n",
"25998 4.01 Premium I I1 61.0 61.0 15223 10.14 10.10 6.17\n",
"27130 4.13 Fair H I1 64.8 61.0 17329 10.00 9.85 6.43\n",
"27630 4.50 Fair J I1 65.8 58.0 18531 10.23 10.16 6.72\n",
"27415 5.01 Fair J I1 65.5 59.0 18018 10.74 10.54 6.98\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# i. carat : 오름차순\n",
"diamonds.sort_values(by = \"carat\", ascending = True)"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "f5966fb2",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 27415 | \n",
" 5.01 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.5 | \n",
" 59.0 | \n",
" 18018 | \n",
" 10.74 | \n",
" 10.54 | \n",
" 6.98 | \n",
"
\n",
" \n",
" 27630 | \n",
" 4.50 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.8 | \n",
" 58.0 | \n",
" 18531 | \n",
" 10.23 | \n",
" 10.16 | \n",
" 6.72 | \n",
"
\n",
" \n",
" 27130 | \n",
" 4.13 | \n",
" Fair | \n",
" H | \n",
" I1 | \n",
" 64.8 | \n",
" 61.0 | \n",
" 17329 | \n",
" 10.00 | \n",
" 9.85 | \n",
" 6.43 | \n",
"
\n",
" \n",
" 25999 | \n",
" 4.01 | \n",
" Premium | \n",
" J | \n",
" I1 | \n",
" 62.5 | \n",
" 62.0 | \n",
" 15223 | \n",
" 10.02 | \n",
" 9.94 | \n",
" 6.24 | \n",
"
\n",
" \n",
" 25998 | \n",
" 4.01 | \n",
" Premium | \n",
" I | \n",
" I1 | \n",
" 61.0 | \n",
" 61.0 | \n",
" 15223 | \n",
" 10.14 | \n",
" 10.10 | \n",
" 6.17 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 31592 | \n",
" 0.20 | \n",
" Premium | \n",
" E | \n",
" VS2 | \n",
" 59.0 | \n",
" 60.0 | \n",
" 367 | \n",
" 3.81 | \n",
" 3.78 | \n",
" 2.24 | \n",
"
\n",
" \n",
" 31591 | \n",
" 0.20 | \n",
" Premium | \n",
" E | \n",
" VS2 | \n",
" 59.8 | \n",
" 62.0 | \n",
" 367 | \n",
" 3.79 | \n",
" 3.77 | \n",
" 2.26 | \n",
"
\n",
" \n",
" 31601 | \n",
" 0.20 | \n",
" Premium | \n",
" D | \n",
" VS2 | \n",
" 61.7 | \n",
" 60.0 | \n",
" 367 | \n",
" 3.77 | \n",
" 3.72 | \n",
" 2.31 | \n",
"
\n",
" \n",
" 14 | \n",
" 0.20 | \n",
" Premium | \n",
" E | \n",
" SI2 | \n",
" 60.2 | \n",
" 62.0 | \n",
" 345 | \n",
" 3.79 | \n",
" 3.75 | \n",
" 2.27 | \n",
"
\n",
" \n",
" 31596 | \n",
" 0.20 | \n",
" Premium | \n",
" F | \n",
" VS2 | \n",
" 62.6 | \n",
" 59.0 | \n",
" 367 | \n",
" 3.73 | \n",
" 3.71 | \n",
" 2.33 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"27415 5.01 Fair J I1 65.5 59.0 18018 10.74 10.54 6.98\n",
"27630 4.50 Fair J I1 65.8 58.0 18531 10.23 10.16 6.72\n",
"27130 4.13 Fair H I1 64.8 61.0 17329 10.00 9.85 6.43\n",
"25999 4.01 Premium J I1 62.5 62.0 15223 10.02 9.94 6.24\n",
"25998 4.01 Premium I I1 61.0 61.0 15223 10.14 10.10 6.17\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"31592 0.20 Premium E VS2 59.0 60.0 367 3.81 3.78 2.24\n",
"31591 0.20 Premium E VS2 59.8 62.0 367 3.79 3.77 2.26\n",
"31601 0.20 Premium D VS2 61.7 60.0 367 3.77 3.72 2.31\n",
"14 0.20 Premium E SI2 60.2 62.0 345 3.79 3.75 2.27\n",
"31596 0.20 Premium F VS2 62.6 59.0 367 3.73 3.71 2.33\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ii. carat : 내림차순\n",
"diamonds.sort_values(by = \"carat\", ascending = False)"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "35d5fe69",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 30779 | \n",
" 0.33 | \n",
" Ideal | \n",
" E | \n",
" VVS2 | \n",
" 61.0 | \n",
" 54.0 | \n",
" 741 | \n",
" 4.49 | \n",
" 4.52 | \n",
" 2.75 | \n",
"
\n",
" \n",
" 30777 | \n",
" 0.30 | \n",
" Ideal | \n",
" D | \n",
" VVS2 | \n",
" 59.5 | \n",
" 56.0 | \n",
" 741 | \n",
" 4.38 | \n",
" 4.42 | \n",
" 2.62 | \n",
"
\n",
" \n",
" 30776 | \n",
" 0.40 | \n",
" Ideal | \n",
" G | \n",
" SI1 | \n",
" 62.5 | \n",
" 54.0 | \n",
" 741 | \n",
" 4.74 | \n",
" 4.77 | \n",
" 2.97 | \n",
"
\n",
" \n",
" 30775 | \n",
" 0.40 | \n",
" Ideal | \n",
" G | \n",
" SI1 | \n",
" 62.3 | \n",
" 54.0 | \n",
" 741 | \n",
" 4.74 | \n",
" 4.77 | \n",
" 2.96 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8197 | \n",
" 1.20 | \n",
" Fair | \n",
" H | \n",
" SI2 | \n",
" 64.8 | \n",
" 58.0 | \n",
" 4368 | \n",
" 6.61 | \n",
" 6.56 | \n",
" 4.27 | \n",
"
\n",
" \n",
" 14634 | \n",
" 1.00 | \n",
" Fair | \n",
" G | \n",
" VS1 | \n",
" 64.4 | \n",
" 56.0 | \n",
" 5908 | \n",
" 6.31 | \n",
" 6.26 | \n",
" 4.05 | \n",
"
\n",
" \n",
" 8200 | \n",
" 1.00 | \n",
" Fair | \n",
" H | \n",
" VS1 | \n",
" 65.4 | \n",
" 61.0 | \n",
" 4368 | \n",
" 6.22 | \n",
" 6.17 | \n",
" 4.05 | \n",
"
\n",
" \n",
" 8186 | \n",
" 1.50 | \n",
" Fair | \n",
" I | \n",
" I1 | \n",
" 71.3 | \n",
" 58.0 | \n",
" 4368 | \n",
" 6.85 | \n",
" 6.81 | \n",
" 4.87 | \n",
"
\n",
" \n",
" 3605 | \n",
" 1.00 | \n",
" Fair | \n",
" J | \n",
" SI1 | \n",
" 64.9 | \n",
" 58.0 | \n",
" 3427 | \n",
" 6.29 | \n",
" 6.23 | \n",
" 4.06 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"30779 0.33 Ideal E VVS2 61.0 54.0 741 4.49 4.52 2.75\n",
"30777 0.30 Ideal D VVS2 59.5 56.0 741 4.38 4.42 2.62\n",
"30776 0.40 Ideal G SI1 62.5 54.0 741 4.74 4.77 2.97\n",
"30775 0.40 Ideal G SI1 62.3 54.0 741 4.74 4.77 2.96\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"8197 1.20 Fair H SI2 64.8 58.0 4368 6.61 6.56 4.27\n",
"14634 1.00 Fair G VS1 64.4 56.0 5908 6.31 6.26 4.05\n",
"8200 1.00 Fair H VS1 65.4 61.0 4368 6.22 6.17 4.05\n",
"8186 1.50 Fair I I1 71.3 58.0 4368 6.85 6.81 4.87\n",
"3605 1.00 Fair J SI1 64.9 58.0 3427 6.29 6.23 4.06\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# iii. cut : 문자형 : 오름차순\n",
"# \"Fair\", \"Good\", \"Very Good\", \"Premium\", \"Ideal\"\n",
"# 품질 순서로 정렬\n",
"diamonds.sort_values(by = \"cut\", ascending = True)"
]
},
{
"cell_type": "code",
"execution_count": 93,
"id": "106b9abd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 12005 | \n",
" 1.01 | \n",
" Fair | \n",
" D | \n",
" SI1 | \n",
" 64.4 | \n",
" 61.0 | \n",
" 5147 | \n",
" 6.17 | \n",
" 6.13 | \n",
" 3.96 | \n",
"
\n",
" \n",
" 2322 | \n",
" 1.01 | \n",
" Fair | \n",
" H | \n",
" SI2 | \n",
" 64.5 | \n",
" 54.0 | \n",
" 3167 | \n",
" 6.26 | \n",
" 6.15 | \n",
" 4.00 | \n",
"
\n",
" \n",
" 39713 | \n",
" 0.41 | \n",
" Fair | \n",
" D | \n",
" VVS2 | \n",
" 64.5 | \n",
" 57.0 | \n",
" 1089 | \n",
" 4.68 | \n",
" 4.65 | \n",
" 3.01 | \n",
"
\n",
" \n",
" 29444 | \n",
" 0.50 | \n",
" Fair | \n",
" G | \n",
" I1 | \n",
" 64.6 | \n",
" 60.0 | \n",
" 701 | \n",
" 5.04 | \n",
" 4.96 | \n",
" 3.23 | \n",
"
\n",
" \n",
" 2336 | \n",
" 1.09 | \n",
" Fair | \n",
" F | \n",
" SI2 | \n",
" 66.3 | \n",
" 56.0 | \n",
" 3170 | \n",
" 6.47 | \n",
" 6.39 | \n",
" 4.27 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 29316 | \n",
" 0.31 | \n",
" Ideal | \n",
" H | \n",
" VS1 | \n",
" 62.6 | \n",
" 55.0 | \n",
" 698 | \n",
" 4.38 | \n",
" 4.34 | \n",
" 2.73 | \n",
"
\n",
" \n",
" 29315 | \n",
" 0.31 | \n",
" Ideal | \n",
" H | \n",
" VS1 | \n",
" 61.1 | \n",
" 57.0 | \n",
" 698 | \n",
" 4.39 | \n",
" 4.35 | \n",
" 2.67 | \n",
"
\n",
" \n",
" 29314 | \n",
" 0.31 | \n",
" Ideal | \n",
" H | \n",
" VS1 | \n",
" 62.0 | \n",
" 54.0 | \n",
" 698 | \n",
" 4.39 | \n",
" 4.35 | \n",
" 2.71 | \n",
"
\n",
" \n",
" 29309 | \n",
" 0.34 | \n",
" Ideal | \n",
" F | \n",
" SI2 | \n",
" 61.9 | \n",
" 57.0 | \n",
" 438 | \n",
" 4.50 | \n",
" 4.52 | \n",
" 2.79 | \n",
"
\n",
" \n",
" 53939 | \n",
" 0.75 | \n",
" Ideal | \n",
" D | \n",
" SI2 | \n",
" 62.2 | \n",
" 55.0 | \n",
" 2757 | \n",
" 5.83 | \n",
" 5.87 | \n",
" 3.64 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"12005 1.01 Fair D SI1 64.4 61.0 5147 6.17 6.13 3.96\n",
"2322 1.01 Fair H SI2 64.5 54.0 3167 6.26 6.15 4.00\n",
"39713 0.41 Fair D VVS2 64.5 57.0 1089 4.68 4.65 3.01\n",
"29444 0.50 Fair G I1 64.6 60.0 701 5.04 4.96 3.23\n",
"2336 1.09 Fair F SI2 66.3 56.0 3170 6.47 6.39 4.27\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"29316 0.31 Ideal H VS1 62.6 55.0 698 4.38 4.34 2.73\n",
"29315 0.31 Ideal H VS1 61.1 57.0 698 4.39 4.35 2.67\n",
"29314 0.31 Ideal H VS1 62.0 54.0 698 4.39 4.35 2.71\n",
"29309 0.34 Ideal F SI2 61.9 57.0 438 4.50 4.52 2.79\n",
"53939 0.75 Ideal D SI2 62.2 55.0 2757 5.83 5.87 3.64\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# iv. cut : 문자형 : 내림차순\n",
"# \"Fair\", \"Good\", \"Very Good\", \"Premium\", \"Ideal\"\n",
"# 품질 순서로 정렬\n",
"diamonds.sort_values(by = \"cut\", ascending = False)"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "655fb204",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 31595 | \n",
" 0.20 | \n",
" Ideal | \n",
" E | \n",
" VS2 | \n",
" 59.7 | \n",
" 55.0 | \n",
" 367 | \n",
" 3.86 | \n",
" 3.84 | \n",
" 2.30 | \n",
"
\n",
" \n",
" 31597 | \n",
" 0.20 | \n",
" Ideal | \n",
" D | \n",
" VS2 | \n",
" 61.5 | \n",
" 57.0 | \n",
" 367 | \n",
" 3.81 | \n",
" 3.77 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 31599 | \n",
" 0.20 | \n",
" Ideal | \n",
" E | \n",
" VS2 | \n",
" 62.2 | \n",
" 57.0 | \n",
" 367 | \n",
" 3.76 | \n",
" 3.73 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 0 | \n",
" 0.23 | \n",
" Ideal | \n",
" E | \n",
" SI2 | \n",
" 61.5 | \n",
" 55.0 | \n",
" 326 | \n",
" 3.95 | \n",
" 3.98 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 11 | \n",
" 0.23 | \n",
" Ideal | \n",
" J | \n",
" VS1 | \n",
" 62.8 | \n",
" 56.0 | \n",
" 340 | \n",
" 3.93 | \n",
" 3.90 | \n",
" 2.46 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 26431 | \n",
" 3.40 | \n",
" Fair | \n",
" D | \n",
" I1 | \n",
" 66.8 | \n",
" 52.0 | \n",
" 15964 | \n",
" 9.42 | \n",
" 9.34 | \n",
" 6.27 | \n",
"
\n",
" \n",
" 23644 | \n",
" 3.65 | \n",
" Fair | \n",
" H | \n",
" I1 | \n",
" 67.1 | \n",
" 53.0 | \n",
" 11668 | \n",
" 9.53 | \n",
" 9.48 | \n",
" 6.38 | \n",
"
\n",
" \n",
" 27130 | \n",
" 4.13 | \n",
" Fair | \n",
" H | \n",
" I1 | \n",
" 64.8 | \n",
" 61.0 | \n",
" 17329 | \n",
" 10.00 | \n",
" 9.85 | \n",
" 6.43 | \n",
"
\n",
" \n",
" 27630 | \n",
" 4.50 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.8 | \n",
" 58.0 | \n",
" 18531 | \n",
" 10.23 | \n",
" 10.16 | \n",
" 6.72 | \n",
"
\n",
" \n",
" 27415 | \n",
" 5.01 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.5 | \n",
" 59.0 | \n",
" 18018 | \n",
" 10.74 | \n",
" 10.54 | \n",
" 6.98 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"31595 0.20 Ideal E VS2 59.7 55.0 367 3.86 3.84 2.30\n",
"31597 0.20 Ideal D VS2 61.5 57.0 367 3.81 3.77 2.33\n",
"31599 0.20 Ideal E VS2 62.2 57.0 367 3.76 3.73 2.33\n",
"0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43\n",
"11 0.23 Ideal J VS1 62.8 56.0 340 3.93 3.90 2.46\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"26431 3.40 Fair D I1 66.8 52.0 15964 9.42 9.34 6.27\n",
"23644 3.65 Fair H I1 67.1 53.0 11668 9.53 9.48 6.38\n",
"27130 4.13 Fair H I1 64.8 61.0 17329 10.00 9.85 6.43\n",
"27630 4.50 Fair J I1 65.8 58.0 18531 10.23 10.16 6.72\n",
"27415 5.01 Fair J I1 65.5 59.0 18018 10.74 10.54 6.98\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# v. cut : 오름차순, carat : 오름차순\n",
"diamonds.sort_values(by = [\"cut\", \"carat\"], ascending = True)"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "9ac26e52",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 27415 | \n",
" 5.01 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.5 | \n",
" 59.0 | \n",
" 18018 | \n",
" 10.74 | \n",
" 10.54 | \n",
" 6.98 | \n",
"
\n",
" \n",
" 27630 | \n",
" 4.50 | \n",
" Fair | \n",
" J | \n",
" I1 | \n",
" 65.8 | \n",
" 58.0 | \n",
" 18531 | \n",
" 10.23 | \n",
" 10.16 | \n",
" 6.72 | \n",
"
\n",
" \n",
" 27130 | \n",
" 4.13 | \n",
" Fair | \n",
" H | \n",
" I1 | \n",
" 64.8 | \n",
" 61.0 | \n",
" 17329 | \n",
" 10.00 | \n",
" 9.85 | \n",
" 6.43 | \n",
"
\n",
" \n",
" 23644 | \n",
" 3.65 | \n",
" Fair | \n",
" H | \n",
" I1 | \n",
" 67.1 | \n",
" 53.0 | \n",
" 11668 | \n",
" 9.53 | \n",
" 9.48 | \n",
" 6.38 | \n",
"
\n",
" \n",
" 26431 | \n",
" 3.40 | \n",
" Fair | \n",
" D | \n",
" I1 | \n",
" 66.8 | \n",
" 52.0 | \n",
" 15964 | \n",
" 9.42 | \n",
" 9.34 | \n",
" 6.27 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 52303 | \n",
" 0.23 | \n",
" Ideal | \n",
" F | \n",
" VS1 | \n",
" 61.4 | \n",
" 55.0 | \n",
" 548 | \n",
" 3.96 | \n",
" 3.99 | \n",
" 2.44 | \n",
"
\n",
" \n",
" 52304 | \n",
" 0.23 | \n",
" Ideal | \n",
" F | \n",
" VS1 | \n",
" 61.1 | \n",
" 56.0 | \n",
" 548 | \n",
" 3.97 | \n",
" 3.99 | \n",
" 2.43 | \n",
"
\n",
" \n",
" 31595 | \n",
" 0.20 | \n",
" Ideal | \n",
" E | \n",
" VS2 | \n",
" 59.7 | \n",
" 55.0 | \n",
" 367 | \n",
" 3.86 | \n",
" 3.84 | \n",
" 2.30 | \n",
"
\n",
" \n",
" 31597 | \n",
" 0.20 | \n",
" Ideal | \n",
" D | \n",
" VS2 | \n",
" 61.5 | \n",
" 57.0 | \n",
" 367 | \n",
" 3.81 | \n",
" 3.77 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 31599 | \n",
" 0.20 | \n",
" Ideal | \n",
" E | \n",
" VS2 | \n",
" 62.2 | \n",
" 57.0 | \n",
" 367 | \n",
" 3.76 | \n",
" 3.73 | \n",
" 2.33 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"27415 5.01 Fair J I1 65.5 59.0 18018 10.74 10.54 6.98\n",
"27630 4.50 Fair J I1 65.8 58.0 18531 10.23 10.16 6.72\n",
"27130 4.13 Fair H I1 64.8 61.0 17329 10.00 9.85 6.43\n",
"23644 3.65 Fair H I1 67.1 53.0 11668 9.53 9.48 6.38\n",
"26431 3.40 Fair D I1 66.8 52.0 15964 9.42 9.34 6.27\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"52303 0.23 Ideal F VS1 61.4 55.0 548 3.96 3.99 2.44\n",
"52304 0.23 Ideal F VS1 61.1 56.0 548 3.97 3.99 2.43\n",
"31595 0.20 Ideal E VS2 59.7 55.0 367 3.86 3.84 2.30\n",
"31597 0.20 Ideal D VS2 61.5 57.0 367 3.81 3.77 2.33\n",
"31599 0.20 Ideal E VS2 62.2 57.0 367 3.76 3.73 2.33\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# vi. cut : 내림차순, carat : 내림차순\n",
"diamonds.sort_values(by = [\"cut\", \"carat\"], ascending = False)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"id": "b8079ecb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 24328 | \n",
" 3.50 | \n",
" Ideal | \n",
" H | \n",
" I1 | \n",
" 62.8 | \n",
" 57.0 | \n",
" 12587 | \n",
" 9.65 | \n",
" 9.59 | \n",
" 6.03 | \n",
"
\n",
" \n",
" 24297 | \n",
" 3.22 | \n",
" Ideal | \n",
" I | \n",
" I1 | \n",
" 62.6 | \n",
" 55.0 | \n",
" 12545 | \n",
" 9.49 | \n",
" 9.42 | \n",
" 5.92 | \n",
"
\n",
" \n",
" 26467 | \n",
" 3.01 | \n",
" Ideal | \n",
" J | \n",
" SI2 | \n",
" 61.7 | \n",
" 58.0 | \n",
" 16037 | \n",
" 9.25 | \n",
" 9.20 | \n",
" 5.69 | \n",
"
\n",
" \n",
" 26744 | \n",
" 3.01 | \n",
" Ideal | \n",
" J | \n",
" I1 | \n",
" 65.4 | \n",
" 60.0 | \n",
" 16538 | \n",
" 8.99 | \n",
" 8.93 | \n",
" 5.86 | \n",
"
\n",
" \n",
" 24784 | \n",
" 2.75 | \n",
" Ideal | \n",
" D | \n",
" I1 | \n",
" 60.9 | \n",
" 57.0 | \n",
" 13156 | \n",
" 9.04 | \n",
" 8.98 | \n",
" 5.49 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 2711 | \n",
" 0.25 | \n",
" Fair | \n",
" D | \n",
" VS1 | \n",
" 61.2 | \n",
" 55.0 | \n",
" 563 | \n",
" 4.09 | \n",
" 4.11 | \n",
" 2.51 | \n",
"
\n",
" \n",
" 28270 | \n",
" 0.25 | \n",
" Fair | \n",
" E | \n",
" VS1 | \n",
" 55.2 | \n",
" 64.0 | \n",
" 361 | \n",
" 4.21 | \n",
" 4.23 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 38153 | \n",
" 0.25 | \n",
" Fair | \n",
" F | \n",
" SI2 | \n",
" 54.4 | \n",
" 64.0 | \n",
" 1013 | \n",
" 4.30 | \n",
" 4.23 | \n",
" 2.32 | \n",
"
\n",
" \n",
" 31611 | \n",
" 0.23 | \n",
" Fair | \n",
" G | \n",
" VVS2 | \n",
" 61.4 | \n",
" 66.0 | \n",
" 369 | \n",
" 3.87 | \n",
" 3.91 | \n",
" 2.39 | \n",
"
\n",
" \n",
" 8 | \n",
" 0.22 | \n",
" Fair | \n",
" E | \n",
" VS2 | \n",
" 65.1 | \n",
" 61.0 | \n",
" 337 | \n",
" 3.87 | \n",
" 3.78 | \n",
" 2.49 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"24328 3.50 Ideal H I1 62.8 57.0 12587 9.65 9.59 6.03\n",
"24297 3.22 Ideal I I1 62.6 55.0 12545 9.49 9.42 5.92\n",
"26467 3.01 Ideal J SI2 61.7 58.0 16037 9.25 9.20 5.69\n",
"26744 3.01 Ideal J I1 65.4 60.0 16538 8.99 8.93 5.86\n",
"24784 2.75 Ideal D I1 60.9 57.0 13156 9.04 8.98 5.49\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"2711 0.25 Fair D VS1 61.2 55.0 563 4.09 4.11 2.51\n",
"28270 0.25 Fair E VS1 55.2 64.0 361 4.21 4.23 2.33\n",
"38153 0.25 Fair F SI2 54.4 64.0 1013 4.30 4.23 2.32\n",
"31611 0.23 Fair G VVS2 61.4 66.0 369 3.87 3.91 2.39\n",
"8 0.22 Fair E VS2 65.1 61.0 337 3.87 3.78 2.49\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# vii. cut : 오름차순, carat : 내림차순\n",
"diamonds.sort_values(by = [\"cut\", \"carat\"], ascending = [True, False])"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "3fa4e8cb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" carat | \n",
" cut | \n",
" color | \n",
" clarity | \n",
" depth | \n",
" table | \n",
" price | \n",
" x | \n",
" y | \n",
" z | \n",
"
\n",
" \n",
" \n",
" \n",
" 8 | \n",
" 0.22 | \n",
" Fair | \n",
" E | \n",
" VS2 | \n",
" 65.1 | \n",
" 61.0 | \n",
" 337 | \n",
" 3.87 | \n",
" 3.78 | \n",
" 2.49 | \n",
"
\n",
" \n",
" 31611 | \n",
" 0.23 | \n",
" Fair | \n",
" G | \n",
" VVS2 | \n",
" 61.4 | \n",
" 66.0 | \n",
" 369 | \n",
" 3.87 | \n",
" 3.91 | \n",
" 2.39 | \n",
"
\n",
" \n",
" 2711 | \n",
" 0.25 | \n",
" Fair | \n",
" D | \n",
" VS1 | \n",
" 61.2 | \n",
" 55.0 | \n",
" 563 | \n",
" 4.09 | \n",
" 4.11 | \n",
" 2.51 | \n",
"
\n",
" \n",
" 28270 | \n",
" 0.25 | \n",
" Fair | \n",
" E | \n",
" VS1 | \n",
" 55.2 | \n",
" 64.0 | \n",
" 361 | \n",
" 4.21 | \n",
" 4.23 | \n",
" 2.33 | \n",
"
\n",
" \n",
" 38153 | \n",
" 0.25 | \n",
" Fair | \n",
" F | \n",
" SI2 | \n",
" 54.4 | \n",
" 64.0 | \n",
" 1013 | \n",
" 4.30 | \n",
" 4.23 | \n",
" 2.32 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 24784 | \n",
" 2.75 | \n",
" Ideal | \n",
" D | \n",
" I1 | \n",
" 60.9 | \n",
" 57.0 | \n",
" 13156 | \n",
" 9.04 | \n",
" 8.98 | \n",
" 5.49 | \n",
"
\n",
" \n",
" 26467 | \n",
" 3.01 | \n",
" Ideal | \n",
" J | \n",
" SI2 | \n",
" 61.7 | \n",
" 58.0 | \n",
" 16037 | \n",
" 9.25 | \n",
" 9.20 | \n",
" 5.69 | \n",
"
\n",
" \n",
" 26744 | \n",
" 3.01 | \n",
" Ideal | \n",
" J | \n",
" I1 | \n",
" 65.4 | \n",
" 60.0 | \n",
" 16538 | \n",
" 8.99 | \n",
" 8.93 | \n",
" 5.86 | \n",
"
\n",
" \n",
" 24297 | \n",
" 3.22 | \n",
" Ideal | \n",
" I | \n",
" I1 | \n",
" 62.6 | \n",
" 55.0 | \n",
" 12545 | \n",
" 9.49 | \n",
" 9.42 | \n",
" 5.92 | \n",
"
\n",
" \n",
" 24328 | \n",
" 3.50 | \n",
" Ideal | \n",
" H | \n",
" I1 | \n",
" 62.8 | \n",
" 57.0 | \n",
" 12587 | \n",
" 9.65 | \n",
" 9.59 | \n",
" 6.03 | \n",
"
\n",
" \n",
"
\n",
"
53940 rows × 10 columns
\n",
"
"
],
"text/plain": [
" carat cut color clarity depth table price x y z\n",
"8 0.22 Fair E VS2 65.1 61.0 337 3.87 3.78 2.49\n",
"31611 0.23 Fair G VVS2 61.4 66.0 369 3.87 3.91 2.39\n",
"2711 0.25 Fair D VS1 61.2 55.0 563 4.09 4.11 2.51\n",
"28270 0.25 Fair E VS1 55.2 64.0 361 4.21 4.23 2.33\n",
"38153 0.25 Fair F SI2 54.4 64.0 1013 4.30 4.23 2.32\n",
"... ... ... ... ... ... ... ... ... ... ...\n",
"24784 2.75 Ideal D I1 60.9 57.0 13156 9.04 8.98 5.49\n",
"26467 3.01 Ideal J SI2 61.7 58.0 16037 9.25 9.20 5.69\n",
"26744 3.01 Ideal J I1 65.4 60.0 16538 8.99 8.93 5.86\n",
"24297 3.22 Ideal I I1 62.6 55.0 12545 9.49 9.42 5.92\n",
"24328 3.50 Ideal H I1 62.8 57.0 12587 9.65 9.59 6.03\n",
"\n",
"[53940 rows x 10 columns]"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# viii. cut : 내림차순, carat : 오름차순\n",
"diamonds.sort_values(by = [\"cut\", \"carat\"], ascending = [False, True])"
]
},
{
"cell_type": "markdown",
"id": "e7f454cb",
"metadata": {},
"source": [
"#### 8. 데이터 합치기\n",
"- 위/아래 : pandas.concat()\n",
"- 왼쪽/오른쪽 : pandas.merge() "
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "ce6822ca",
"metadata": {},
"outputs": [],
"source": [
"# (1) 위/아래\n",
"# 2개 이상의 데이터가 열의 이름도 같고, 열의 순서도 같을 때에\n",
"# 예를 들면, 2022년 매출 데이터, 2023년 매출 데이터\n",
"\n",
"df1 = pd.DataFrame({\"Year\" : [2022, 2022, 2022, 2022],\n",
" \"Item\" : [\"A\", \"B\", \"C\", \"D\"],\n",
" \"income\" : [1000, 2000, 3000, 4000]})\n",
"\n",
"df2 = pd.DataFrame({\"Year\" : [2023, 2023, 2023, 2023],\n",
" \"Item\" : [\"A\", \"B\", \"C\", \"D\"],\n",
" \"income\" : [500, 1000, 500, 1000]})"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "f0b31b98",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Year | \n",
" Item | \n",
" income | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2022 | \n",
" A | \n",
" 1000 | \n",
"
\n",
" \n",
" 1 | \n",
" 2022 | \n",
" B | \n",
" 2000 | \n",
"
\n",
" \n",
" 2 | \n",
" 2022 | \n",
" C | \n",
" 3000 | \n",
"
\n",
" \n",
" 3 | \n",
" 2022 | \n",
" D | \n",
" 4000 | \n",
"
\n",
" \n",
" 4 | \n",
" 2023 | \n",
" A | \n",
" 500 | \n",
"
\n",
" \n",
" 5 | \n",
" 2023 | \n",
" B | \n",
" 1000 | \n",
"
\n",
" \n",
" 6 | \n",
" 2023 | \n",
" C | \n",
" 500 | \n",
"
\n",
" \n",
" 7 | \n",
" 2023 | \n",
" D | \n",
" 1000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Year Item income\n",
"0 2022 A 1000\n",
"1 2022 B 2000\n",
"2 2022 C 3000\n",
"3 2022 D 4000\n",
"4 2023 A 500\n",
"5 2023 B 1000\n",
"6 2023 C 500\n",
"7 2023 D 1000"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# data = pandas.concat(objs = [data1, data2, ...], axis = 0)\n",
"\n",
"# concat : concatenate : 연결하다\n",
"# axis : 축\n",
"# axis = 0 : 행\n",
"# axis = 1 : 열\n",
"\n",
"df3 = pd.concat(objs = [df1, df2], axis = 0)\n",
"df3.reset_index(drop = True)\n",
"\n",
"# reset_index() : 행의 이름을 수정\n",
"# drop = True : 기존의 행의 이름을 열로 저장하지 않고 삭제함"
]
},
{
"cell_type": "code",
"execution_count": 105,
"id": "339b3d3b",
"metadata": {},
"outputs": [],
"source": [
"# (2) 왼쪽/오른쪽\n",
"# 2개의 데이터만 합칠 수 있음\n",
"# 각각 데이터에 일부의 정보를 저장하고 있는 경우\n",
"\n",
"# 예를들면, df4 : 고객정보, df5 : 거래정보\n",
"\n",
"# data = pandas.merge(data1, \n",
"# data2, \n",
"# on = \"기본키 or 주요키 or Primary key\",\n",
"# how = 결합 방법)\n",
"\n",
"# how : \"inner\", \"outer\", \"left\", \"right\""
]
},
{
"cell_type": "code",
"execution_count": 106,
"id": "69e53c68",
"metadata": {},
"outputs": [],
"source": [
"df4 = pd.DataFrame({\"id\" : [1, 2, 4, 5],\n",
" \"age\" : [10, 20, 40, 50]})\n",
"\n",
"df5 = pd.DataFrame({\"id\" : [1, 3, 4, 6],\n",
" \"bt\" : [\"a\", \"b\", \"ab\", \"o\"]})"
]
},
{
"cell_type": "code",
"execution_count": 107,
"id": "a7df303f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" id | \n",
" age | \n",
" bt | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 10 | \n",
" a | \n",
"
\n",
" \n",
" 1 | \n",
" 4 | \n",
" 40 | \n",
" ab | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" id age bt\n",
"0 1 10 a\n",
"1 4 40 ab"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# i. inner join\n",
"# 2개의 데이터에 동시에 있는 primary key만 합침\n",
"# pandas.merge(data1, data2, on = \"primary key\", how = \"inner\")\n",
"\n",
"df6 = pd.merge(df4, df5, on = \"id\", how = \"inner\")\n",
"df6"
]
},
{
"cell_type": "code",
"execution_count": 111,
"id": "c05663ae",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" id | \n",
" age | \n",
" bt | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 10.0 | \n",
" a | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 20.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" NaN | \n",
" b | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" 40.0 | \n",
" ab | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" 50.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 5 | \n",
" 6 | \n",
" NaN | \n",
" o | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" id age bt\n",
"0 1 10.0 a\n",
"1 2 20.0 NaN\n",
"2 3 NaN b\n",
"3 4 40.0 ab\n",
"4 5 50.0 NaN\n",
"5 6 NaN o"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# ii. Outer Join : Full Join\n",
"# 2개의 데이터에 primary key의 합집합\n",
"# pandas.merge(data1, data2, on = \"primary key\", how = \"outer\")\n",
"\n",
"df7 = pd.merge(df4, df5, on = \"id\", how = \"outer\")\n",
"df7 = df7.sort_values(by = \"id\", ascending = True)\n",
"df7.reset_index(drop = True)"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "a3644841",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" id | \n",
" age | \n",
" bt | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 10 | \n",
" a | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 20 | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" 4 | \n",
" 40 | \n",
" ab | \n",
"
\n",
" \n",
" 3 | \n",
" 5 | \n",
" 50 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" id age bt\n",
"0 1 10 a\n",
"1 2 20 NaN\n",
"2 4 40 ab\n",
"3 5 50 NaN"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# iii. Outer Join : Left Join\n",
"# merge()에 먼저 들어가는 데이터 : left\n",
"# merge()에 두 번째로 들어가는 데이터 : rigth\n",
"# merge()에 먼저 들어가는 데이터의 primary key만 합침\n",
"\n",
"# pandas.merge(data1, data2, on = \"primary key\", how = \"left\")\n",
"\n",
"df8 = pd.merge(df4, df5, on = \"id\", how = \"left\")\n",
"df8"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "661f4acf",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" id | \n",
" age | \n",
" bt | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 10.0 | \n",
" a | \n",
"
\n",
" \n",
" 1 | \n",
" 3 | \n",
" NaN | \n",
" b | \n",
"
\n",
" \n",
" 2 | \n",
" 4 | \n",
" 40.0 | \n",
" ab | \n",
"
\n",
" \n",
" 3 | \n",
" 6 | \n",
" NaN | \n",
" o | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" id age bt\n",
"0 1 10.0 a\n",
"1 3 NaN b\n",
"2 4 40.0 ab\n",
"3 6 NaN o"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# iv. Outer Join : Right Join\n",
"# merge()에 먼저 들어가는 데이터 : left\n",
"# merge()에 두 번째로 들어가는 데이터 : rigth\n",
"# merge()에 두 번째로 들어가는 데이터의 primary key만 합침\n",
"\n",
"# pandas.merge(data1, data2, on = \"primary key\", how = \"right\")\n",
"\n",
"df9 = pd.merge(df4, df5, on = \"id\", how = \"right\")\n",
"df9"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "255a10d7",
"metadata": {},
"outputs": [],
"source": [
"# 참고\n",
"# 만약에 primary key가 2개 이상\n",
"# pandas.merge(data1, data2, \n",
"# on = [\"primary key1\", \"primary key2\"], \n",
"# how = \"outer\")"
]
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11.5"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 5
}