Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "--------------\n",
- "## 演習1:複数CSVデータをExcelファイルに一括変換\n",
- "-------------------\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step1: まずは、複数CSVデータをJupyter notebookに表示させます。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "scrolled": true
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['/Users/yanomekeita/dhu/monthly_searches/ms_ar.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_css.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_excel.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_html.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_illustrator.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_java.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_photoshop.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_php.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_programming.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_python.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_ruby.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_swift.csv',\n",
- " '/Users/yanomekeita/dhu/monthly_searches/ms_vr.csv']"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# ディレクトリ操作のためのOSライブラリと、ファイル検索をしてくれるglobライブラリを読み込みます。\n",
- "import os\n",
- "import glob\n",
- "\n",
- "file_dir = '/Users/yanomekeita/dhu/monthly_searches'\n",
- "file_path = os.path.join(file_dir, '*.csv')\n",
- "files = glob.glob(file_path)\n",
- "files"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "ar 拡張現実\n",
- "4385\n",
- "ar 開発\n",
- "5326\n",
- "ar カード\n",
- "6122\n",
- "ar カメラ\n",
- "4893\n",
- "ar 髪型\n",
- "8147\n",
- "ar 会計\n",
- "7343\n",
- "ar 活用事例\n",
- "10593\n",
- "ar 化学\n",
- "1066\n",
- "ar 観光\n",
- "7484\n",
- "ar 関連銘柄\n",
- "1029\n",
- "css\n",
- "4554\n",
- "css 書き方\n",
- "16432\n",
- "cssとは\n",
- "6201\n",
- "css セレクタ\n",
- "11057\n",
- "css border\n",
- "17158\n",
- "css position\n",
- "17167\n",
- "css important\n",
- "6121\n",
- "css display\n",
- "6226\n",
- "css margin\n",
- "2744\n",
- "css float\n",
- "18878\n",
- "エクセル 関数\n",
- "9717\n",
- "エクセル プルダウン\n",
- "7716\n",
- "エクセルシオール\n",
- "11493\n",
- "エクセル マクロ\n",
- "3291\n",
- "エクセル 改行\n",
- "3812\n",
- "エクセル グラフ\n",
- "5632\n",
- "エクセル チェックボックス\n",
- "11050\n",
- "エクセル 表\n",
- "9726\n",
- "エクセル パスワード\n",
- "16223\n",
- "html\n",
- "7010\n",
- "html5\n",
- "13780\n",
- "htmlとは\n",
- "9124\n",
- "html 色\n",
- "4822\n",
- "html タグ\n",
- "14354\n",
- "html 改行\n",
- "19721\n",
- "html コメントアウト\n",
- "2362\n",
- "html リンク\n",
- "12423\n",
- "html table\n",
- "7926\n",
- "html css\n",
- "4262\n",
- "illustrator\n",
- "18221\n",
- "illustrator 無料\n",
- "3795\n",
- "illustrator cs6\n",
- "6345\n",
- "illustrator 使い方\n",
- "1143\n",
- "illustrator 価格\n",
- "4316\n",
- "illustrator グラデーション\n",
- "14278\n",
- "illustrator 体験版\n",
- "17971\n",
- "illustrator 塗りつぶし\n",
- "5862\n",
- "illustrator 矢印\n",
- "4962\n",
- "illustrator アウトライン化\n",
- "1127\n",
- "java\n",
- "1072\n",
- "javascript\n",
- "11564\n",
- "java 入門\n",
- "15137\n",
- "javascript 配列\n",
- "12994\n",
- "javaとは\n",
- "14846\n",
- "javascript 入門\n",
- "14994\n",
- "java9\n",
- "8058\n",
- "java 配列\n",
- "4258\n",
- "java アップデート\n",
- "5010\n",
- "java インストール\n",
- "4953\n",
- "photoshop\n",
- "18215\n",
- "photoshop elements\n",
- "13083\n",
- "photoshop 無料\n",
- "19727\n",
- "photoshop 切り抜き\n",
- "16110\n",
- "photoshop vip\n",
- "4239\n",
- "photoshop 使い方\n",
- "9581\n",
- "photoshop cs2\n",
- "5172\n",
- "photoshop ブラシ\n",
- "18882\n",
- "photoshop 値段\n",
- "7855\n",
- "photoshop 体験版\n",
- "6000\n",
- "php\n",
- "19934\n",
- "phpmyadmin\n",
- "3483\n",
- "php研究所\n",
- "5052\n",
- "php date\n",
- "16900\n",
- "php 入門\n",
- "19818\n",
- "php foreach\n",
- "9893\n",
- "phpとは\n",
- "4652\n",
- "php 配列\n",
- "3594\n",
- "php isset\n",
- "7566\n",
- "php explode\n",
- "15881\n",
- "プログラミング\n",
- "4523\n",
- "プログラミング言語\n",
- "13190\n",
- "プログラミングとは\n",
- "15038\n",
- "プログラミング教室\n",
- "10221\n",
- "プログラミング教育\n",
- "7952\n",
- "プログラミング 独学\n",
- "11961\n",
- "プログラミング ゲーム\n",
- "19126\n",
- "プログラミング 資格\n",
- "1682\n",
- "プログラミング アプリ\n",
- "1804\n",
- "プログラミング 勉強\n",
- "18401\n",
- "python\n",
- "18495\n",
- "python 入門\n",
- "19292\n",
- "python for\n",
- "15969\n",
- "python if\n",
- "3481\n",
- "python 配列\n",
- "17525\n",
- "python インストール\n",
- "4284\n",
- "python print\n",
- "19930\n",
- "python3\n",
- "3240\n",
- "python 機械学習\n",
- "16022\n",
- "python 正規表現\n",
- "10719\n",
- "ruby on rails\n",
- "10495\n",
- "ruby 入門\n",
- "15825\n",
- "ruby rose\n",
- "15763\n",
- "ruby 正規表現\n",
- "12917\n",
- "ruby hash\n",
- "10580\n",
- "ruby 配列\n",
- "14363\n",
- "ruby インストール\n",
- "3774\n",
- "ruby and you\n",
- "7543\n",
- "ruby if\n",
- "11710\n",
- "ruby array\n",
- "1470\n",
- "swift\n",
- "5443\n",
- "swift code\n",
- "15786\n",
- "swift 意味\n",
- "17142\n",
- "swift 入門\n",
- "1283\n",
- "swift playgrounds\n",
- "13779\n",
- "swift sports\n",
- "13801\n",
- "swift4\n",
- "10061\n",
- "swiftkey\n",
- "14115\n",
- "swift windows\n",
- "17327\n",
- "swift3\n",
- "2787\n",
- "vr 新宿\n",
- "4049\n",
- "vr ゴーグル\n",
- "14639\n",
- "vr 体験\n",
- "16875\n",
- "vr ゲーム\n",
- "3591\n",
- "vr スマホ\n",
- "2395\n",
- "vr アプリ\n",
- "5007\n",
- "vr おすすめ\n",
- "19251\n",
- "vr 値段\n",
- "6642\n",
- "vr 渋谷\n",
- "6189\n",
- "vr ソフト\n",
- "18419\n"
- ]
- }
- ],
- "source": [
- "# CSVファイルを読み込み、全データの抽出をしてみます。\n",
- "import csv\n",
- "\n",
- "# 上記のCSVファイルを1つ1つreaderモードで読み込みを開始します。\n",
- "for file in files :\n",
- " with open(file, 'r') as csvfile:\n",
- " reader = csv.reader(csvfile)\n",
- " \n",
- " # readerモードで読み込んだものを分解し、CSVファイルの中身をみていきます。\n",
- " for row in reader:\n",
- " for cell in row:\n",
- " print(cell)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step2 : 取得したデータを1つのExcelファイルにまとめていきます。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "# Excelファイルに上記のデータを書き込んでいきます。\n",
- "import openpyxl as px\n",
- "import csv\n",
- "\n",
- "# Excelファイルを作成します。\n",
- "wb = px.Workbook()\n",
- "\n",
- "# ExcelファイルにrubyやcssというCSVデータの名前のシートを作成します。\n",
- "for file in files :\n",
- " ws = wb.create_sheet(file) # ここで1つ1つ名前のシートを作成しています。\n",
- " with open(file, 'r') as csvfile:\n",
- " reader = csv.reader(csvfile)\n",
- " \n",
- " # readerモードで読み込んだものを分解し、CSVファイルの中身をみていきます。\n",
- " for row in reader:\n",
- " for cell in row:\n",
- " print(cell)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "次に値の書き込みを行います。上記で出力したcellの動きとExcelファイルの動きを合わせてあげます。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "# Excelファイルに上記のデータを書き込んでいきます。\n",
- "import openpyxl as px\n",
- "import csv\n",
- "\n",
- "# Excelファイルを作成します。\n",
- "wb = px.Workbook()\n",
- "\n",
- "# ExcelファイルにrubyやcssというCSVデータの名前のシートを作成します。\n",
- "for file in files :\n",
- " ws = wb.create_sheet(file)\n",
- " with open(file, 'r') as csvfile:\n",
- " reader = csv.reader(csvfile)\n",
- " \n",
- " # 値の書き込み(enumerateメソッドを使うと、インデックスの数を算出することができます。)\n",
- " for i ,row in enumerate(reader):\n",
- " for k, cell in enumerate(row):\n",
- " ws.cell(row = i + 1, column = k + 1 ).value = cell "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "file名の保存でエラーが出ています。\n",
- "Excelのシート名では、/を使うことができないためです。\n",
- "\n",
- "ここからは文字列の置換を行い、/を省いていきましょう。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "ms_ar.csv\n",
- "ms_css.csv\n",
- "ms_excel.csv\n",
- "ms_html.csv\n",
- "ms_illustrator.csv\n",
- "ms_java.csv\n",
- "ms_photoshop.csv\n",
- "ms_php.csv\n",
- "ms_programming.csv\n",
- "ms_python.csv\n",
- "ms_ruby.csv\n",
- "ms_swift.csv\n",
- "ms_vr.csv\n"
- ]
- }
- ],
- "source": [
- "# Excelファイルに上記のデータを書き込んでいきます。\n",
- "import openpyxl as px\n",
- "import csv\n",
- "\n",
- "\n",
- "# Excelファイルを作成します。\n",
- "wb = px.Workbook()\n",
- "\n",
- "# 新たにreという正規表現を活用した置換をするライブラリをインポートします。\n",
- "import re\n",
- "\n",
- "for file in files :\n",
- " # ここで文字列の置換のテストを行います。 \n",
- " file = re.sub(r'(/Users/yanomekeita/dhu/monthly_searches/)', \"\", file)\n",
- " print(file)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "しっかりと/を省くことができました。\n",
- "\n",
- "もし、.csvを削除したい場合は、もう一度.csvを省く処理を入れてあげれば.csvを省くことができます。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "ms_ar\n",
- "ms_css\n",
- "ms_excel\n",
- "ms_html\n",
- "ms_illustrator\n",
- "ms_java\n",
- "ms_photoshop\n",
- "ms_php\n",
- "ms_programming\n",
- "ms_python\n",
- "ms_ruby\n",
- "ms_swift\n",
- "ms_vr\n"
- ]
- }
- ],
- "source": [
- "# Excelファイルに上記のデータを書き込んでいきます。\n",
- "import openpyxl as px\n",
- "import csv\n",
- "\n",
- "# Excelファイルを作成します。\n",
- "wb = px.Workbook()\n",
- "\n",
- "# 新たにreという正規表現を活用した置換をするライブラリをインポートします。\n",
- "import re\n",
- "for file in files :\n",
- " # 1回目の置換(/を省く)\n",
- " transform = re.sub(r'(/Users/yanomekeita/dhu/monthly_searches/)', \"\", file)\n",
- " # 2回目の置換(.csvを省く)\n",
- " transform = re.sub(r'(.csv)', \"\", transform )\n",
- " print(transform)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "# Excelファイルに上記のデータを書き込んでいきます。\n",
- "import openpyxl as px\n",
- "import csv\n",
- "import re\n",
- "\n",
- "# Excelファイルを作成します。\n",
- "wb = px.Workbook()\n",
- "\n",
- "\n",
- "for file in files :\n",
- " # 置換を行い、Excelシートを作成します。\n",
- " transform = re.sub(r'(/Users/yanomekeita/dhu/monthly_searches/)', \"\", file)\n",
- " transform = re.sub(r'(.csv)', \"\", transform )\n",
- " ws = wb.create_sheet(transform)\n",
- " \n",
- " # CSVファイルを読み込みます。\n",
- " with open(file, 'r') as csvfile:\n",
- " reader = csv.reader(csvfile)\n",
- " \n",
- " # 値の書き込み(enumerateメソッドを使うと、インデックスの数を算出することができます。)\n",
- " for i ,row in enumerate(reader):\n",
- " for k, cell in enumerate(row):\n",
- " ws.cell(row = i + 1, column = k + 1 ).value = cell\n",
- " wb.save('monthly_search.xlsx')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "1つ目のsheet1が不必要なので、削除してしまいましょう。"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "# Excelファイルに上記のデータを書き込んでいきます。\n",
- "import openpyxl as px\n",
- "import csv\n",
- "import re\n",
- "\n",
- "# Excelファイルを作成します。\n",
- "wb = px.Workbook()\n",
- "wb.remove_sheet(wb.active)\n",
- "\n",
- "for file in files :\n",
- " # 1回目の置換(/を省く)\n",
- " transform = re.sub(r'(/Users/yanomekeita/dhu/monthly_searches/)', \"\", file)\n",
- " # 2回目の置換(.csvを省く)\n",
- " transform = re.sub(r'(.csv)', \"\", transform )\n",
- " ws = wb.create_sheet(transform)\n",
- " with open(file, 'r') as csvfile:\n",
- " reader = csv.reader(csvfile)\n",
- " \n",
- " # 値の書き込み(enumerateメソッドを使うと、インデックスの数を算出することができます。)\n",
- " for i ,row in enumerate(reader):\n",
- " for k, cell in enumerate(row):\n",
- " ws.cell(row = i + 1, column = k + 1 ).value = cell\n",
- " wb.save('monthly_search.xlsx')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- }
- ],
- "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.6.1"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
Add Comment
Please, Sign In to add comment