【Python】データをExcelのように扱ったり、グラフを簡単に書いたり【MitoとBamboo】

PythonをExcelのように。。

いろいろとデータ整理などを仕事でしているんですが。。

Pythonの場合、Pandasというライブラリーがよくできていて、たくさんあるデータを整理するのには、便利です。でも、Python使っていない人には、どうやってグラフ書くんだろう?とか、Mergeしたりすると、Nan(空欄)ばかりになったりとかして、データ操作の見通しが悪かったりします。

で。。Excelのように使えると便利ですよね。(Rなら、そのままでそういう機能ついているんですけど。。)PythonでもBamboolibとかMitoなどが出てきているみたいです。

Bamboolib

https://docs.bamboolib.8080labs.com/

Mito

Best Python Spreadsheet Automation & Code Generation | Mito
Mito is the fastest way to do Python data science. Edit your data in a spreadsheet, and generate Python code automatically.
Mito Documentation | Mito
Automate your repetitive Excel reports. No computer science degree required.

どちらも似たような、JupyterLabやJupyterNotebookの中で動かせるデータ操作用のGUIです。

ちょっと便利かな?と思ってMitoの方を入れてみました。

インストールして、動かしてみると、まんまExcelのようにできます。

グラフも、

import matplotlib as mpl
import matplotlib.pyplot as plt
とか書かなくてもいいです(笑)

上の図のように、ファイルもそのまんま見えるので、GUIでファイル選択して、タブでたくさん開けます。ちなみに、上の図2枚とも、Full Screenにしているので、まんまExcelみたいですよね。

ちょっとみるには便利かも。。

Mitoのインストール

vertualenv で環境作る人は(WindowsのPowerShellとかCommand pronptで作る人など)

python3 -m venv mitoenv
mitoenv\Scripts\activate.bat
python -m pip install mitoinstaller
python -m mitoinstaller install

で、いつものようにJupyterNotebookや、JupyterLabを動かせばいいです。

その場合、mitoenvになっていること確認してからですね(笑)

Anacondaで、Pythonを入れて使っている人は、

Anaconda Promptのコマンドラインから。。

conda create -n mitoenv python=3.8
conda activate mitoenv
python -m pip install mitoinstaller
python -m mitoinstaller install

とコマンドを打ち込むと、インストールされます。

コマンドプロンプトやPowerShellからなら

conda activate mitoenv
jupyter lab

で、Mito環境が入ったJupyter labが立ち上がってきます。

当たり前ですが。。Anacondaナビゲータからの場合も、mitoenvを選んでからJupyter labをLaunchすること。。

で、Jupyter labに

import mitosheet
mitosheet.sheet()

って入れるだけ。。あとは使ってみて。

いろいろ便利機能はあるようですが

詳しい使い方は、直接Mitoのページを見てもらうといいかと思いますが。。

Mito Documentation | Mito
Automate your repetitive Excel reports. No computer science degree required.

ちょっとした使い方は、こういうビデオになっているので、見てもらうとして。。

いいなと思ったのは、コードを自動生成してくれていて、勝手にJupyterに入っていってくれているんですよね。

下の例は、plotlyとか使わないので、あんまり役に立つかどうかですが(笑)

# Import plotly and create a figure
import plotly.graph_objects as go
fig = go.Figure()

# Add the scatter traces to the figure
for column_header in ['timestamp']:
fig.add_trace(go.Scatter(
x=df_2021_12_06_13_33_47_bin_AHR2_csv[column_header],
y=df_2021_12_06_13_33_47_bin_AHR2_csv['Alt'],
mode='markers',
name=str(column_header)
))

# Update the layout
# See Plotly documentation for cutomizations: https://plotly.com/python/reference/scatter/
fig.update_layout(
xaxis_title="timestamp",
yaxis_title="Alt",
title="timestamp, Alt scatter plot",
)
fig.show(renderer="iframe")

データマージしたり、しても。。履歴を自動記録してくれているので、もとに戻せたりもする。

これで、データ解析をするというより、ちょっと便利にデータを区切ったり、見てみたりするのに、便利そうなのと、あとで、プログラム回す時に、データ整形用のコードができていると。。それを使いまわせまる。

特に、マージしたりいろいろするのに、PandasのDataFrameの操作って以外にコツがいるのですよね。。RやOctaveなら簡単にできるけど(笑)

こういうのからPythonに入るのもいいかもです。GoogleColabで動くとなおよいんですけどね。

Bamboolibはもっと便利だけど

使い方が難しいかな?(笑)

ちなみに、Bamboolibの方は Binderでも動くみたいなので。。 こちらをクリックして動かしてみてください

GitHub: 8080labs/bamboolib_binder_template/master
Click to run this interactive environment. From the Binder Project: Reproducible, sharable, interactive computing environments.

こんな解析まで自動でやってくれて、コードを書き出すのも別にやってくれる。

こくいうクロス分析とかをやるには良さそうですね。

Mitoのほうが、少し粘りつよいかな?Mitoだけに(笑)

【追記】Google Colabにも機能ありますね

ColabでちょっとPythonいじってて、DataFrameを表示させると。。

なんか、魔法の杖みたいなアイコンがあって。。これクリックしたら。。

Filterとかつけて見れるじゃないの~~

知らなかった(笑) 詳しくは、下記で。。

Google Colab