はじめに
・この記事は、「Python Advent Calendar 2022」の24日目の記事です。
https://qiita.com/advent-calendar/2022/python
・この記事の情報は2022/12時点のものです。
・今回使用するのは「Google Colaboratory」です。
今回は
筆者は普段RPAツール(UiPath)を使った業務支援を中心に要件定義等も行っています。
ただ、Pythonの実績は自己学習の範囲内にとどまっています。
UiPathでは、Excelからデータを取得&格納するときに「Datatable型」を使います。
PythonでもDatatable型に相当するものはあるのでしょうか。
ちょっと調査してみましょう。
PythonでExcelを読み込むと...
(事前にPandasをインストールするようにしましょう)
PythonでExcelを読み込むと、以下の様に表形式でデータが出力されます。
この時、取得する変数を調べてみると「DataFrame型」というらしい。
Datatable型と違うのかな?
DataTableとDataFrame
よくわからなかったので調べてみると、以下のURLにわかりやすい図と説明がありました。
記事ではC#とPythonを比較をしていますが、UiPathではVB.NetもC#も使用可能です。
【入門】C#技術者の為のPython独学!データフレーム基礎編
https://resanaplaza.com/2021/06/06/%E3%80%90%E5%85%A5%E9%96%80%E3%80%91c%E6%8A%80%E8%A1%93%E8%80%85%E3%81%AE%E7%82%BA%E3%81%AEpython%E7%8B%AC%E5%AD%A6%EF%BC%81%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E5%9F%BA/
興味を持ったのは以下の差です。
Datatable型:Datatable型.Rows(行番号)(列番号 or "列名")
DataFrame型:DataFrame型.("列名")(行番号) もしくは DataFrame型.("列名")("行名")
【補足】
UiPathではDatatable型からセルの値をピンポイントでを取得するときは、
Datatable型.Rows(行番号)(列番号 or "列名")で記述します。
指定範囲のデータを取得
はい、これで終わり!とするのも良いのですが、これだとオチも面白さも何もないので、試しにデータの範囲を抽出する練習をしてみましょう。
PowerBIのブログで使用したサンプルデータを使います。
DataFrame型[開始行:終了行]
試しにdtHeightData[0:3]と書いて実行すると...
お、出ましたね。
DataFrame型[0:5]とすると
まずはこの数を変更すれば任意の行の範囲を取得できる事を理解しました。
ああ、早く業務でPythonを使いたい。。。
まとめ
Datatable型とDataFrame型は似ているようですが、データの取得方法が少し違うということが理解できました。
DataFrame型は行名を設定することができるという点は初めて知れたのでよい機会になりました。
Pythonでのデータ取得の幅が広がりそうです。
これからもPythonで業務に生かせる日が来るよう精進していきます。
最後までお読みいただきありがとうございました。
参考URL
【第6回】箱ひげ図
https://note.com/kensty/n/n5e25b873b1d4
【入門】C#技術者の為のPython独学!データフレーム基礎編
https://resanaplaza.com/2021/06/06/%E3%80%90%E5%85%A5%E9%96%80%E3%80%91c%E6%8A%80%E8%A1%93%E8%80%85%E3%81%AE%E7%82%BA%E3%81%AEpython%E7%8B%AC%E5%AD%A6%EF%BC%81%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E5%9F%BA/