{ "cells": [ { "cell_type": "markdown", "id": "795cec63", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "id": "214b5561", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 15, "id": "088ea74a", "metadata": {}, "outputs": [], "source": [ "import openpyxl\n", "days = openpyxl.load_workbook(\"D02EXAMPLE.xlsx\").sheetnames[:7]" ] }, { "cell_type": "code", "execution_count": 27, "id": "7d064fdb", "metadata": {}, "outputs": [ { "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", "
제품지점매출날짜
0종합어묵 (300g)강남점19300002021-08-30
1종합어묵 (300g)서초점13500002021-08-30
2종합어묵 (300g)송파점6300002021-08-30
...............
3397멸치가루 (120g)일산점17000002021-10-11
3398멸치가루 (120g)부평점12300002021-10-11
3399멸치가루 (120g)부천 옥길점5400002021-10-11
\n", "

23800 rows × 4 columns

\n", "
" ], "text/plain": [ " 제품 지점 매출 날짜\n", "0 종합어묵 (300g) 강남점 1930000 2021-08-30\n", "1 종합어묵 (300g) 서초점 1350000 2021-08-30\n", "2 종합어묵 (300g) 송파점 630000 2021-08-30\n", "... ... ... ... ...\n", "3397 멸치가루 (120g) 일산점 1700000 2021-10-11\n", "3398 멸치가루 (120g) 부평점 1230000 2021-10-11\n", "3399 멸치가루 (120g) 부천 옥길점 540000 2021-10-11\n", "\n", "[23800 rows x 4 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "udf = pd.DataFrame([])\n", "for i in days:\n", " udf1 = pd.read_excel(\"D02EXAMPLE.xlsx\", sheet_name=i).set_index(\"제품\")\n", " udf1 = udf1.stack().reset_index()\n", " udf1.columns = [\"제품\", \"지점\", \"매출\"]\n", " udf1[\"날짜\"] = i\n", " udf = pd.concat([udf,udf1])\n", "udf" ] }, { "cell_type": "code", "execution_count": 31, "id": "48471fb8", "metadata": {}, "outputs": [ { "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", "
제품지점매출...지역분류구분
0종합어묵 (300g)강남점1930000...서울직영점기타
1종합어묵 (300g)서초점1350000...서울직영점기타
2종합어묵 (300g)송파점630000...서울비직영점기타
........................
23797멸치가루 (120g)일산점1700000...경기직영점기타
23798멸치가루 (120g)부평점1230000...인천비직영점기타
23799멸치가루 (120g)부천 옥길점540000...경기직영점기타
\n", "

23800 rows × 7 columns

\n", "
" ], "text/plain": [ " 제품 지점 매출 ... 지역 분류 구분\n", "0 종합어묵 (300g) 강남점 1930000 ... 서울 직영점 기타\n", "1 종합어묵 (300g) 서초점 1350000 ... 서울 직영점 기타\n", "2 종합어묵 (300g) 송파점 630000 ... 서울 비직영점 기타\n", "... ... ... ... ... .. ... ..\n", "23797 멸치가루 (120g) 일산점 1700000 ... 경기 직영점 기타\n", "23798 멸치가루 (120g) 부평점 1230000 ... 인천 비직영점 기타\n", "23799 멸치가루 (120g) 부천 옥길점 540000 ... 경기 직영점 기타\n", "\n", "[23800 rows x 7 columns]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1 = pd.read_excel(\"D02EXAMPLE.xlsx\", sheet_name=\"지점구분\")\n", "df2 = pd.read_excel(\"D02EXAMPLE.xlsx\", sheet_name=\"제품구분\")\n", "pdf1 = udf.merge(df1, how=\"left\").merge(df2, how=\"left\")\n", "pdf1" ] }, { "cell_type": "code", "execution_count": 37, "id": "52a20532", "metadata": {}, "outputs": [], "source": [ "pdf1.pivot_table(\"매출\", index=\"날짜\", columns=\"지역\", aggfunc=\"sum\").to_clipboard()\n", "pdf1.pivot_table(\"매출\", index=\"지역\", columns=\"구분\", aggfunc=\"sum\").to_clipboard()" ] }, { "cell_type": "code", "execution_count": null, "id": "558164eb", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import openpyxl\n", "days = openpyxl.load_workbook(\"D02EXAMPLE.xlsx\").sheetnames[:7]\n", "udf = pd.DataFrame([])\n", "for i in days:\n", " udf1 = pd.read_excel(\"D02EXAMPLE.xlsx\", sheet_name=i).set_index(\"제품\") \n", " udf1 = udfi.stack().reset_index()\n", " udf1.columns=[\"제품\", \"지점\",\"매출\"]\n", " udf1[\"날짜\"] = i\n", " udf = pd.concat([udf,udf1])\n", "df1 = pd.read_excel(\"D02EXAMPLE.xlsx\", sheet_name=\"지점구분\")\n", "df2 = pd.read_excel(\"D02EXAMPLE.xlsx\", sheet_name=\"제품구분\")\n", "pdf1 = udf.merge(df1, how=\"left\").merge(df2, how=\"left\")\n", "pdf1.pivot_table(\"매출\", index=\"날짜\", columns=\"지역\", aggfunc=\"sum\").to_clipboard()\n", "pdf1.pivot_table(\"매출\", columns=\"구분\", index=\"지역\", aggfunc=\"sum\").to_clipboard()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": false, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "288.5px", "left": "739.195px", "top": "468px", "width": "190.297px" }, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 5 }