メインコンテンツまでスキップ

「Python」タグの記事が3件件あります

全てのタグを見る

PythonでExcelファイルを操作してみた(作業時間の集計)

松井
ディアシステム(株)開発一部第3課

こんにちは 1 部 3 課の松井です。
前回の集約プログラムの続きで今回は集計プログラムになります。
前回と今回のソースコードを「プログラム名.py」の1つのファイルにし、Powershell かコマンドプロンプトで実行することで
集約・集計が一度に出来るようになります。

◆ 集計プログラム 以下が作業者集約.xlsx のシートから各作業者の合計時間を出力するソースコードになります。

画像1

簡単に解説します

  • 118 ~ 122、124 行目の for 文で作業者集約.xlsx の全シートを繰り返し処理します。
  • 125 ~ 131 行目はシート内の 2 ~ 32 行目の 6 列目の値の加算を for 文で繰り返し処理します。

画像2

画像3

  • 133 ~ 152 行目が計算した合計作業時間を合計時間シートを作成して追記します。
  • 154 行目で合計時間の計算が出来たので作業者集約.xlsx を保存して終了になります。

◆ 合計時間シートを追加した作業者集約.xlsx

画像4

以上が私が作成した Python プログラムになります。
まだ不慣れで無駄なコードもあるかと思いますがプログラミングの参考になればと思います。

PythonでExcelファイルを操作してみた(勤怠シートの集約)

松井
ディアシステム(株)開発一部第3課

今回のプログラムは以前、チーム内の勤怠管理業務の自動化をしたいと思ったときに Python で Excel 操作する参考資料を見て作成したプログラムです。
私自身、Python については「Python3 エンジニア認定基本試験」に合格の為、勉強を数ヵ月した程度しか経験はありませんでしたがネット上の参考資料や書籍などを見て作成することが出来ました。
初めての Python プログラムなので単純な作りで初心者の方には分かり易いかと思います。
反面、経験豊富な方から見ればこうした方が良いなどあるかもしれません。

◆ プログラム仕様について プログラムの仕様は
コマンドライン引数としてフォルダ(YYYYMM)を指定し、フォルダ内の各自の作業時間の Excel ファイルを1つの Excel ファイルに集約・集計するというものを作りました。
コマンドプロンプトや PowerShell で\

>python プログラム名.py フォルダ名

と指定したフォルダ内のファイルを集約するものです。

画像1

画像2

各作業者のファイルは以下のような構成とします。

画像3

開発環境について

まずは開発に使用する PC に Python のインストールが必要ですが、その辺りはネット上で検索すれば簡単に出来ますので調べてみてください。 PC に Python がインストールされているかはコマンドプロンプトや PowerShell で

 > python -V

と入力します。 「Python 3.X.X」と表示されたらインストールされています。

プログラムを書くためのエディタは何を使っても良いと思います。 私は IDE(統合開発環境)の JupyterLab を使用しました。(他に Visual Studio Code や PyCharm などもあります) JupyterLab は Web ブラウザで動作する対話型実行環境です。(デスクトップ版もあります) 特徴としてはセル単位でコードを記述し、実行して結果が確かめられる点です。 インストール方法や詳細は検索してみてください。

ライブラリのインストール

Excel ファイルを操作するために必要なライブラリをインストールします。 openpyxl とライブラリを使用します。 openpyxl は Excel ファイルを操作するライブラリです。 コマンドプロンプトや PowerShell から

> pip install openpyxl

と入力するとインストールが開始します。

インストールが完了したら

> pip list

と入力し、インストールしたライブラリの一覧を表示します。 一覧に「opempyxl X.X.X」が表示されていればインストールは完了です。

集約プログラム

以下が各作業者の Excel ファイルを1つの作業者集約.xlsx に纏めるソースコードになります。

画像4

簡単に解説します ・7 ~ 15 行目は作成する集約ファイルを作成します。ファイル名は作業者集約.xlsx とします。 ・17 ~ 20 行目はコマンドラインからの引数を入力フォルダのパスとして取得します。

>python プログラム名.py フォルダ名

画像5

・25 ~ 26 行目の for 文でフォルダ内の全ファイルの繰り返し処理になります。 ・33 ~ 41 行目の処理で作業時間報告の Excel シートから 1 行分のセルの値を datum というリストに追加してデータを取得します。

「for row in ws['A6:F36']:」はシートの A6 ~ F36 まで 1 行づつ繰り返しになります。 ここで出てくる「ws['A6:F36']」はタプルというものです。 「type(ws['A6:F36'])」を実行すると「tuple」と出力されます。 タプルはリストに似た構造で1つのデータの中に複数の値を順番に並べていれることが出来るデータ型です。 データの取り出し方もリストと同じで[]にインデックス番号を指定します。 ただし、リストと違い値の追加、削除、変更は出来ません。「ws['A6:F36'].value」を実行するとエラーになります。

画像6

画像7

・43 ~ 81 行目は作業者集約.xlsx に作業者のシートを追加します。 ・84 ~ 112 行目で作業者集約.xlsx の作業者のシートに取得した行のデータを追加します。   91 行目の for 文は 1 ~ 31 の値を row_num に代入し、繰り返し処理します。   range(1,32)は 1 ~ 31 までの値になります。

画像8

・114 行目で一旦、全作業者の作業時間シートを追加出来たので作業者集約.xlsx を保存します。

◆ 作業者集約.xlsx ファイル

画像9

少し長くなったので今回は集約するまでとします。 次回は集計の処理になります。

Streamlitを使ってデータ分析Webアプリを簡単に作成しよう

津村
ディアシステム(株)開発一部第4課

Streamlitとは

Streamlitは、Pythonで作成されたオープンソースのWebアプリケーションフレームワークです。
データサイエンスや機械学習の分野で、迅速にグラフィカルなWebアプリを構築し、公開するためのツールとして非常に人気があります。
HTMLやCSS、JavaScriptの知識がなくても、Pythonだけで美しいWebアプリケーションを作成できる点が魅力です。

インストール方法

まず、Streamlitをインストールしましょう。
最新のPython環境が整っている前提で、ターミナルより以下のコマンドを実行します。

Terminal
> pip install streamlit

インストールが完了したら、以下のコマンドで簡単なデモを実行してみてください。

Terminal
> streamlit hello

demo-1

demo-2

サンプルコード1:基本的なWebアプリの作成

最初に、基本的なWebアプリケーションを作成してみましょう。
以下のコードを使って、「Hello, Streamlit!」というメッセージを表示するアプリを作成します。

sample_1.py
import streamlit as st

st.title('Hello, Streamlit!')
st.write('これは基本的なWebアプリケーションの例です。')

「***.py」ファイルはPythonスクリプトと呼ばれ、Pythonコードが書かれたテキストファイルです。
インタプリタがこのファイルを読み込んで実行し、これにより、Pythonプログラムやスクリプトとして動作します。
上記のコードをsample_1.pyとして保存し、以下のコマンドで実行します。

Terminal
> streamlit run sample_1.py

ブラウザに「Hello, Streamlit!」というタイトルとメッセージが表示されれば成功です。 sample_1

サンプルコード2:データフレームの表示

次に、Pandasデータフレームを表示する方法を紹介します。
以下のコードでは、簡単なデータフレームを作成し、それをWebアプリ上に表示します。

sample_2.py
import streamlit as st
import pandas as pd

data = {
'列1': [1, 2, 3, 4],
'列2': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

st.title('データフレームの表示')
st.write('以下はPandasデータフレームの例です。')
st.write(df)

同様にsample_2.pyとして保存し、以下のコマンドで実行します。

Terminal
> streamlit run sample_2.py

これにより、データフレームが表形式で表示されます。データの視覚化に非常に便利です。 sample_2

サンプルコード3:インタラクティブなウィジェット

最後に、インタラクティブなウィジェットを追加してみましょう。
以下のコードでは、ユーザーが選択したオプションに基づいてメッセージを変更します。

sample_3.py
import streamlit as st

st.title('インタラクティブなウィジェット')

option = st.selectbox(
'好きなフルーツを選んでください。',
['アップル', 'バナナ', 'オレンジ']
)

st.write('あなたの好きなフルーツは', option, 'です。')
Terminal
> streamlit run sample_3.py

このコードを実行すると、ドロップダウンメニューからフルーツを選ぶことができ、選択に応じてメッセージが更新されます。 sample_3-1 sample_3-2

まとめ

Streamlitは、シンプルかつ強力なWebアプリケーションフレームワークであり、Pythonのみを使用してデータ分析や機械学習のアプリケーションを迅速に作成できます。
今回紹介したサンプルコードを参考に、ぜひ自分のプロジェクトにStreamlitを取り入れてみてください。

未経験から始める
システムエンジニア

一生モノのITスキルを身につけよう

あなたの経験とスキルを
ディアシステムで発揮してください!