投稿

10月, 2020の投稿を表示しています

PythonのopenpyxlでExcelの行と列を入れ替えてみた

イメージ
今回のPythonの勉強は、Excelの行と列を入れ替えることをしてみました。 予め、都道府県とその都道府県庁所在地をリスト化したExceを用意し、そのリストの行と列を入れ替えたものを新しい別のシートに作成するというもの。 以下がExcelファイル「Example.xlsx」の中身。 Pythonのコードは以下の通り。 解説はコード内にコメントしてあります。 #openpyxlモジュールを使用する import openpyxl #既存のExcelファイルを開く wb=openpyxl.load_workbook('Example.xlsx') #既存ファイルのシートを指定 sheet1=wb['Sheet1'] #既存ファイルに新規シートをシート名と位置を指定して作成 sheet2=wb.create_sheet(title='Sheet2',index=1) #Sheet1の値のある行数を取得 rw=sheet1.max_row #Sheet1の値のある列数を取得 cl=sheet1.max_column #iは値のある行数分繰り返す #jは値のある列数分繰り返す #range(start,stop)はstart≦i<stopでstopで指定した値は含まないので「+1」している for i in range(1,rw+1): for j in range(1,cl+1): C1=sheet1.cell(row=i,column=j) #sheet1のセルの行番号と列番号を指定している C2=sheet2.cell(row=j,column=i) #sheet1のセルの行番号と列番号を入れ替えてsheet2のセルを指定している C2.value=C1.value #sheet2のセルにsheet1のセルの値を代入 wb.save('Example.xlsx') #上書き保存 結果は以下の通り。 最初のリストの行数は6、列数は2。つまり、 rw=sheet1.max_row=6 cl=sheet1.max_column=2 for文は、 for i in range(1,7): #1≦i<7、つまり1...

【まとめ】Pythonのopenpyxlで行うExcelの基本操作

イメージ
Pythonの勉強を再開し、Excelを操作して自動化させるべく色々と進めています。 使用本は、『 退屈なことはPythonにやらせよう〜 』、私が購入したのは 初版第1刷で2017年発刊分 です。 Github の方にある正誤表の中身を本に書き写しておきます。 この本の12章がExcelに関することで、ここを中心に、わからない場合は他の章を参照して進めています。 私の環境は、Ubuntuの公式Docker ImageにPythonやopenpyxl、JupyterLabをインストールして、Pythonの結果が随時確認できるようにしています。詳細は、拙ブログ『 【まとめ】MacでPythonのGUIライブラリが使えるDockerの設定方法 』にまとめています。 マシン:MacBook Pro OS:macOS Catalina(10.15.7) 仮想環境:Docker Desktop エディタ:JupyterLab Python:Ver.3.8.2 openpyxl:Ver.3.0.5 Excelを操作するといいながら、以下の画像はGoogleスプレッドシートです。ファイルは拡張子「.xlsx」で保存すれば、Excelが無くてもPythonで操作が可能で、GoogleスプレッドシートでもOpenOfficeで開きますので確認も可能です。 そんな中、Excelを操作する基本的なコードを備忘録としてまとめました。 #openpyxlモジュールを使用する import openpyxl #新規Excelファイルを開く wb=openpyxl.Workbook() #このExcelを保存する wb.save('example_copy.xlsx') #新規ファイルのシート名を確認する wb.sheetnames #シート名は「Sheet」の1シートのみある状態 #シート「Sheet」を指定する wb['Sheet'] #シート名を取得する wb['Sheet'].title #シート「Sheet」のシート名を変更する wb['Sheet'].title='Example 1' #シート名を確認する...

なぜPython?Excelを操作して自動化したいのです!その方法と注意点

イメージ
昨日まででDockerでの開発環境構築は一応完成し落ち着いたので、やっとPythonの勉強を再開することにしました。 自分の現在のPythonの勉強方法と、ちょっと注意すべきことがありましたので以下に述べていこうと思います。 目次 なぜPython?それはExcelを操作して自動化したいのです Pythonの教科書として購読中の書籍 PythonでExcel操作の開始 注意点 なぜPython? それはExcelを操作して自動化したいのです そもそもPythonを覚えて何をしたいか。 それは Excelを操作して自動化したい 、ということです。 私の本職は一応デザイナーを名乗っていて、ロゴ制作やWEB制作などをしていますが、InDesignで組版もしています。というか前職のメインはこちらでした。 冊子を組版したりもしていましたが、バリアブル印刷用にExcelでテキスト処理(主に関数を駆使して)してInDesignにデータ結合などで流し込みをしたりもよくしていました。 Excel関数だと関数自体が煩雑になりやすくて、自分で作っておきながら後で見返すと何がなんだか分からなくなる、それほどです。 で、このExcelでのテキスト処理をもっと効率よくしたいと。 Pythonの教科書として購読中の書籍 Python本は、『 Python本のオススメと絶対に挫折しないための学習方法とは | ガンマソフト株式会社 』を参考に以下のものを購入しました。 そもそもこの本を進めていって、 TurtleやTkinterが動かなくて、DockerでGUIライブラリを稼働させるように構築しよう と思った次第です。それだけでも買ってよかったです。 この書籍の後半は人工知能の話になるので割愛しましたが、懇切丁寧な解説でPythonの敷居を低めてくれました。 続けて、こちらを購入しました。Pythonの文法といいますか書き方といいますか、1冊目より深い解説をされていて、辞書的に使えるかなと思っています。ですので、この本は全体をざっと読むに留め、不明点がある時に読み返そうと思います。 後半はGUIの操作やゲームを作ることをしますので、そちらに興味のある方はいいのではないでしょうか。 PythonでExcel操作の開始 そして今...

MacでPythonのGUIライブラリが使用可能なDockerをDockerfileにしてみた

イメージ
【2022.2.2追記】 docker composeとdockerfileで設定する完全版の方をご覧ください。 【まとめ】MacでPythonのGUIライブラリが使えるDockerの設定方法 先日書いたエントリ『 MacでPythonのGUIライブラリをDocker Container内のJupyterlabから稼働させる方法 』で、Docker Container内でJupyterlabにTkinterをインポートするPythonプログラムを書いて実行したらホスト(自分のPC)側にGUIアプリが表示できるDocker Imageを構築することができました。 で、よくよく考えると、このエントリでまとめたContainerでの構築手順はDockerfileにしても問題がないではないか!と気付いてしまった。構築したContainer(PythonからJupyterlabまでインストールした)を一度Docker Imageにして(commitして)、そのDocker Imageから新たにContainerを作成もした上で、動作確認も済んでいるので。 ということで、新たな挑戦としてDockerfileを書いて、DockerfileからDocker Imageを作成することにします。が、新たな課題も見つかりました。 目次 Dockerfileを書く Dockerfileの保存先を確認 TeminalでDockerfileのあるディレクトリに移動 TeminalでDocker buildしてDocker Imageを作成 python3-tkがインストールできない問題と再build Containerの作成 python3-tkのインストール 今後の課題 Dockerfileを書く 今回書いたDockerfileは以下の通りである。 FROM ubuntu:latest LABEL version="1.0" \ maintainer="eszett design" \ description="Dockerで構築したJupyterlabからPython TKinterを操作できるDocker imageとContainerを作成...

MacでPythonのGUIライブラリをDocker Container内のJupyterlabから稼働させる方法

イメージ
【2022.2.2追記】 docker composeとdockerfileで設定する完全版の方もご覧ください。 【完成版】MacでPythonのGUIライブラリが使えるDockerの設定方法 現在Pythonを勉強中です。 環境は、 マシン:MacBook Pro OS:macOS Catalina(10.15.7) 開発環境:Docker Desktop エディタ:JupyterLab、Sublime Text DockerにUbuntu公式のImageを使用、それから作成したContainerにPythonやJupyterlabを入れ、Tkinterを使えるようにしたい。 というのは、現在Pythonの教科書として、森 巧尚 著『 Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ 』を使用中。 この本は簡潔丁寧に解説してくれているので、本当の初心者には良いが、少しかじった人だとクドく感じるかもしれない。(Amazonだと試し読みできるので確認してみるのも良い) 進んでいくと、アプリを作る項目に入ります。 その時にTkinterをインポートすることになりますが、 Docker内にPythonを入れている状況だとTkinterは稼働しないことが判明 。 調べたところによると、X11をMacにインストールして、Dockerにも何かしらインストールしなければならないようです。 結論から申し上げると、2日かけて 無事Docker Container内でJupyterlabからTkinterを稼働させることに成功 しました。 では、DockerでJupyterlabからTkinterを稼働させる方法を、順に説明していきます。 目次 1 MacにXQuartzをインストール 2 XQuartzの環境設定を開く 3 Docker Imageを導入 4 Containerを作成 5 Containerの中に入る 6 ContainerにPythonをインストール 7 libx11-devのインストール 8 python3-tkをインストール 9 Jupyterlabをインストール 10 Con...