{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "9장. Pandas", "provenance": [], "authorship_tag": "ABX9TyPAZAcH62mbzYDF5WCA/FhH", "include_colab_link": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "code", "metadata": { "id": "yBQ5JN4S5EL2", "outputId": "2f82a4e1-86cd-4aa7-f70b-253ed5fd9a5b", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "import pandas as pd\n", "\n", "df1 = pd.DataFrame({\n", " \"a\":[40, 70, 10],\n", " \"b\":[50, 80, 20],\n", " \"c\":[60, 90, 30]},\n", " index=[1, 2, 3])\n", "print(df1)" ], "execution_count": 55, "outputs": [ { "output_type": "stream", "text": [ " a b c\n", "1 40 50 60\n", "2 70 80 90\n", "3 10 20 30\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "HAh6K96G57qT", "outputId": "f163082f-dd93-4e20-ef33-c9084cca1753", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "df2 = pd.DataFrame([\n", " [41, 51, 61],\n", " [71, 81, 91],\n", " [11, 21, 31]],\n", " index=[1, 2, 3],\n", " columns=['a', 'b', 'c'])\n", "print(df2)" ], "execution_count": 56, "outputs": [ { "output_type": "stream", "text": [ " a b c\n", "1 41 51 61\n", "2 71 81 91\n", "3 11 21 31\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "ocjOkQNr6LDR", "outputId": "97c88028-486d-44d6-d6b9-723e63373613", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "df3 = pd.concat( [ df1, df2 ] )\n", "print(df3)" ], "execution_count": 57, "outputs": [ { "output_type": "stream", "text": [ " a b c\n", "1 40 50 60\n", "2 70 80 90\n", "3 10 20 30\n", "1 41 51 61\n", "2 71 81 91\n", "3 11 21 31\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "MMaSrr5c635o", "outputId": "a8429916-3689-424e-bf4e-c7c0834ebb7b", "colab": { "base_uri": "https://localhost:8080/", "height": 136 } }, "source": [ "pd.concat([df1,df2], axis=1)" ], "execution_count": 58, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
abcabc
1405060415161
2708090718191
3102030112131
\n", "
" ], "text/plain": [ " a b c a b c\n", "1 40 50 60 41 51 61\n", "2 70 80 90 71 81 91\n", "3 10 20 30 11 21 31" ] }, "metadata": { "tags": [] }, "execution_count": 58 } ] }, { "cell_type": "code", "metadata": { "id": "sWSOPAl1Vx5b", "outputId": "3534fc44-60be-498f-83de-41c65482d95e", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "df3 = df3.reset_index()\n", "print(df3)" ], "execution_count": 59, "outputs": [ { "output_type": "stream", "text": [ " index a b c\n", "0 1 40 50 60\n", "1 2 70 80 90\n", "2 3 10 20 30\n", "3 1 41 51 61\n", "4 2 71 81 91\n", "5 3 11 21 31\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "RzSL26MrV82A", "outputId": "ddba4306-f427-4344-d49d-161b289fc016", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "df3 = df3.drop(columns=['index'])\n", "print(df3)" ], "execution_count": 60, "outputs": [ { "output_type": "stream", "text": [ " a b c\n", "0 40 50 60\n", "1 70 80 90\n", "2 10 20 30\n", "3 41 51 61\n", "4 71 81 91\n", "5 11 21 31\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "tmmjfvSgWCSQ", "outputId": "2f7fc6d5-603a-41df-9d25-a0472e9f5297", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "df4 = pd.melt(df3)\n", "print(df4)" ], "execution_count": 61, "outputs": [ { "output_type": "stream", "text": [ " variable value\n", "0 a 40\n", "1 a 70\n", "2 a 10\n", "3 a 41\n", "4 a 71\n", "5 a 11\n", "6 b 50\n", "7 b 80\n", "8 b 20\n", "9 b 51\n", "10 b 81\n", "11 b 21\n", "12 c 60\n", "13 c 90\n", "14 c 30\n", "15 c 61\n", "16 c 91\n", "17 c 31\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "RR7kWEUrWFLR", "outputId": "2cfa98f5-799e-4c8a-ef05-acc595d65fc0", "colab": { "base_uri": "https://localhost:8080/", "height": 580 } }, "source": [ "df4.sort_values('value')" ], "execution_count": 62, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevalue
2a10
5a11
8b20
11b21
14c30
17c31
0a40
3a41
6b50
9b51
12c60
15c61
1a70
4a71
7b80
10b81
13c90
16c91
\n", "
" ], "text/plain": [ " variable value\n", "2 a 10\n", "5 a 11\n", "8 b 20\n", "11 b 21\n", "14 c 30\n", "17 c 31\n", "0 a 40\n", "3 a 41\n", "6 b 50\n", "9 b 51\n", "12 c 60\n", "15 c 61\n", "1 a 70\n", "4 a 71\n", "7 b 80\n", "10 b 81\n", "13 c 90\n", "16 c 91" ] }, "metadata": { "tags": [] }, "execution_count": 62 } ] }, { "cell_type": "code", "metadata": { "id": "0W4tOMLKWNS4", "outputId": "55c9008b-a17c-4270-ec62-3408db74c402", "colab": { "base_uri": "https://localhost:8080/", "height": 580 } }, "source": [ "df4.sort_values('value', ascending=False)" ], "execution_count": 63, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevalue
16c91
13c90
10b81
7b80
4a71
1a70
15c61
12c60
9b51
6b50
3a41
0a40
17c31
14c30
11b21
8b20
5a11
2a10
\n", "
" ], "text/plain": [ " variable value\n", "16 c 91\n", "13 c 90\n", "10 b 81\n", "7 b 80\n", "4 a 71\n", "1 a 70\n", "15 c 61\n", "12 c 60\n", "9 b 51\n", "6 b 50\n", "3 a 41\n", "0 a 40\n", "17 c 31\n", "14 c 30\n", "11 b 21\n", "8 b 20\n", "5 a 11\n", "2 a 10" ] }, "metadata": { "tags": [] }, "execution_count": 63 } ] }, { "cell_type": "code", "metadata": { "id": "qkM8ihM4WS5P", "outputId": "078fcf4b-59a0-46f1-f49a-9f05093952aa", "colab": { "base_uri": "https://localhost:8080/", "height": 314 } }, "source": [ "df4.query('value>50')" ], "execution_count": 64, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevalue
1a70
4a71
7b80
9b51
10b81
12c60
13c90
15c61
16c91
\n", "
" ], "text/plain": [ " variable value\n", "1 a 70\n", "4 a 71\n", "7 b 80\n", "9 b 51\n", "10 b 81\n", "12 c 60\n", "13 c 90\n", "15 c 61\n", "16 c 91" ] }, "metadata": { "tags": [] }, "execution_count": 64 } ] }, { "cell_type": "code", "metadata": { "id": "fJrOmd5oWUr3", "outputId": "2855b761-3a2c-4993-f942-0e339e6c4fbd", "colab": { "base_uri": "https://localhost:8080/", "height": 136 } }, "source": [ "df4.query('value>50').query('variable==\"b\"')" ], "execution_count": 65, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevalue
7b80
9b51
10b81
\n", "
" ], "text/plain": [ " variable value\n", "7 b 80\n", "9 b 51\n", "10 b 81" ] }, "metadata": { "tags": [] }, "execution_count": 65 } ] }, { "cell_type": "code", "metadata": { "id": "zXCJz4kXWYa3", "outputId": "344a10f3-d26c-4b5d-c155-1183d770fa7c", "colab": { "base_uri": "https://localhost:8080/", "height": 580 } }, "source": [ "df4.rename(columns={'variable':'var', 'value':'val'})" ], "execution_count": 66, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
varval
0a40
1a70
2a10
3a41
4a71
5a11
6b50
7b80
8b20
9b51
10b81
11b21
12c60
13c90
14c30
15c61
16c91
17c31
\n", "
" ], "text/plain": [ " var val\n", "0 a 40\n", "1 a 70\n", "2 a 10\n", "3 a 41\n", "4 a 71\n", "5 a 11\n", "6 b 50\n", "7 b 80\n", "8 b 20\n", "9 b 51\n", "10 b 81\n", "11 b 21\n", "12 c 60\n", "13 c 90\n", "14 c 30\n", "15 c 61\n", "16 c 91\n", "17 c 31" ] }, "metadata": { "tags": [] }, "execution_count": 66 } ] }, { "cell_type": "code", "metadata": { "id": "EFWRsm6JWcNP", "outputId": "1e13eaf8-1ed7-4d12-f0e0-bd51235c3233", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "df4['variable'].drop_duplicates()" ], "execution_count": 67, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0 a\n", "6 b\n", "12 c\n", "Name: variable, dtype: object" ] }, "metadata": { "tags": [] }, "execution_count": 67 } ] }, { "cell_type": "code", "metadata": { "id": "ny6fxhS4Wfq_", "outputId": "701734b3-f0a9-4be0-eaaa-9cdd3ac8028f", "colab": { "base_uri": "https://localhost:8080/", "height": 195 } }, "source": [ "df4.head(5)" ], "execution_count": 68, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevalue
0a40
1a70
2a10
3a41
4a71
\n", "
" ], "text/plain": [ " variable value\n", "0 a 40\n", "1 a 70\n", "2 a 10\n", "3 a 41\n", "4 a 71" ] }, "metadata": { "tags": [] }, "execution_count": 68 } ] }, { "cell_type": "code", "metadata": { "id": "Zpa_HVY4WiwX", "outputId": "25ae4f2b-cbb3-4d9a-fdc5-592e30fde852", "colab": { "base_uri": "https://localhost:8080/", "height": 195 } }, "source": [ "df4.tail(5)" ], "execution_count": 69, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
variablevalue
13c90
14c30
15c61
16c91
17c31
\n", "
" ], "text/plain": [ " variable value\n", "13 c 90\n", "14 c 30\n", "15 c 61\n", "16 c 91\n", "17 c 31" ] }, "metadata": { "tags": [] }, "execution_count": 69 } ] }, { "cell_type": "code", "metadata": { "id": "UWTW_tQGBK2q", "outputId": "67a9506a-2701-4df2-a25f-2ef079c637d7", "colab": { "base_uri": "https://localhost:8080/" } }, "source": [ "import pandas as pd\n", "\n", "leftDF = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1,2,3,4]}) \n", "rightDF = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5,6,7,8]})\n", "\n", "print(leftDF)\n", "print(rightDF)" ], "execution_count": 70, "outputs": [ { "output_type": "stream", "text": [ " key value\n", "0 A 1\n", "1 B 2\n", "2 C 3\n", "3 D 4\n", " key value\n", "0 B 5\n", "1 D 6\n", "2 E 7\n", "3 F 8\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "6dBz_7-BE5qB", "outputId": "dbea2f12-4317-40ea-8408-41d110b628b6", "colab": { "base_uri": "https://localhost:8080/", "height": 106 } }, "source": [ "# leftDF.merge(rightDF, on='key')\n", "# leftDF.merge(rightDF, on='key', how='inner')\n", "pd.merge(leftDF, rightDF, on='key', how='inner')" ], "execution_count": 71, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keyvalue_xvalue_y
0B25
1D46
\n", "
" ], "text/plain": [ " key value_x value_y\n", "0 B 2 5\n", "1 D 4 6" ] }, "metadata": { "tags": [] }, "execution_count": 71 } ] }, { "cell_type": "code", "metadata": { "id": "4cYtEHYCFdNd", "outputId": "cb681ada-5d90-4054-b442-518a09b070f9", "colab": { "base_uri": "https://localhost:8080/", "height": 166 } }, "source": [ "# leftDF.merge(rightDF, on='key', how='left')\n", "pd.merge(leftDF, rightDF, on='key', how='left')" ], "execution_count": 72, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keyvalue_xvalue_y
0A1NaN
1B25.0
2C3NaN
3D46.0
\n", "
" ], "text/plain": [ " key value_x value_y\n", "0 A 1 NaN\n", "1 B 2 5.0\n", "2 C 3 NaN\n", "3 D 4 6.0" ] }, "metadata": { "tags": [] }, "execution_count": 72 } ] }, { "cell_type": "code", "metadata": { "id": "wJgA5QmBFd9x", "outputId": "7f61bdb3-f5d1-4167-bb50-eedf49cfd192", "colab": { "base_uri": "https://localhost:8080/", "height": 166 } }, "source": [ "# leftDF.merge(rightDF, on='key', how='right')\n", "pd.merge(leftDF, rightDF, on='key', how='right')" ], "execution_count": 73, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keyvalue_xvalue_y
0B2.05
1D4.06
2ENaN7
3FNaN8
\n", "
" ], "text/plain": [ " key value_x value_y\n", "0 B 2.0 5\n", "1 D 4.0 6\n", "2 E NaN 7\n", "3 F NaN 8" ] }, "metadata": { "tags": [] }, "execution_count": 73 } ] }, { "cell_type": "code", "metadata": { "id": "hrVOXRNGF50n", "outputId": "6b5cec37-487c-495c-d6d9-0946967ebe88", "colab": { "base_uri": "https://localhost:8080/", "height": 225 } }, "source": [ "# leftDF.merge(rightDF, on='key', how='outer')\n", "pd.merge(leftDF, rightDF, on='key', how='outer')" ], "execution_count": 74, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
keyvalue_xvalue_y
0A1.0NaN
1B2.05.0
2C3.0NaN
3D4.06.0
4ENaN7.0
5FNaN8.0
\n", "
" ], "text/plain": [ " key value_x value_y\n", "0 A 1.0 NaN\n", "1 B 2.0 5.0\n", "2 C 3.0 NaN\n", "3 D 4.0 6.0\n", "4 E NaN 7.0\n", "5 F NaN 8.0" ] }, "metadata": { "tags": [] }, "execution_count": 74 } ] }, { "cell_type": "code", "metadata": { "id": "uPYzR28NGEF3" }, "source": [ "" ], "execution_count": 74, "outputs": [] } ] }