PythonのPandas

PythonのPandas

Pandasは、データフレームと呼ばれる2次元配列に対して、Excelでおこなうようなデータ解析が簡単にできるライブラリ。

データベースからSQLで引っ張ってきたデータをPandasのデータフレームに打ち込んで、データ解析した結果をグラフなどに出力し、日替わりでウェブから見られるようにする…なんてことができるんですね。

PythonのPandasにSQLでデータを読み書きする

Pythonとデータベースを接続するためのライブラリは、DBによって変わります(DB-API 2.0インタフェース)

しかし、接続したあとは、pandasの関数を使ってどのデータベースでも同じように扱えるんですね。

DB-API2.0対応のライブラリを使っていれば、pandasでの処理は共通にできます。

参考 PEP 249 – Python Database API Specification v2.0 | peps.python.org

SQLiteのテーブルにSQLを発行し、pandasのデータフレームにデータを取り込んでみましょう。

データベースは、SQLiteのサンプルデータベースを使います。

関連 SQLite Sample Database And Its Diagram (in PDF form

SQLiteはファイルベースのデータベースなので、ファイルをカレントディレクトリにwgetすれば、すぐに使えるようになります。

ファイルの場所は、https://www.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip

$ cat sqlite_sample2.py
#!/usr/bin/python3

import sqlite3
import pandas as pd

con = sqlite3.connect("chinook.db")

df=pd.read_sql( 'select * from customers limit 10', con )
print( df )

実行するとこうなります。pandasのデータフレームにSQLの実行結果が読み込まれています。データフレームは、データベースのテーブルというか、Excelの表そのものの形をしているので、データベースやcsv形式のデータと親和性が高いんですね。

$ ./sqlite_sample2.py
   CustomerId  FirstName  ...                     Email SupportRepId
0           1       Luis  ...      luisg@embraer.com.br            3
1           2     Leonie  ...     leonekohler@surfeu.de            5
2           3   Francois  ...       ftremblay@gmail.com            3
3           4      Bjorn  ...     bjorn.hansen@yahoo.no            4
4           5  Franti?ek  ...  frantisekw@jetbrains.com            4
5           6     Helena  ...           hholy@gmail.com            5
6           7     Astrid  ...    astrid.gruber@apple.at            5
7           8       Daan  ...     daan_peeters@apple.be            4
8           9       Kara  ...     kara.nielsen@jubii.dk            4
9          10    Eduardo  ...  eduardo@woodstock.com.br            4

[10 rows x 13 columns]

データフレームの内容をデータベースに書き込むことも可能です。
関連 pandas.read_sql — pandas 1.4.3 ドキュメント

関連 pandas.DataFrame.to_sql — pandas 1.4.3 ドキュメント

to_sqlでpandasのデータフレームをデータベースに書き込み、read_sqlでSQLの実行結果をpandasのデータフレームに読み出します。

PythonのPandasのインストール

Pandasのインストールはpipコマンドで実行可能。pipコマンドは、Python3.4以降がインストールされていると自動で入っていると思います。

pip install pandas

インストール後、pythonにてimport pandasでエラーが出なければ、インストール成功。

$ pip install pandas
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (0.25.3)
Requirement already satisfied: pytz>=2017.2 in /usr/lib/python3/dist-packages (from pandas) (2018.3)
Requirement already satisfied: numpy>=1.13.3 in /usr/lib/python3/dist-packages (from pandas) (1.13.3)
Requirement already satisfied: python-dateutil>=2.6.1 in /usr/lib/python3/dist-packages (from pandas) (2.6.1)

$ python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
>>>1

※環境により、pipをpip3(python3用のpip)にして実行しないといけない場合があるようです。

pandas

pythonのpandasの使い方/データフレーム作成

pythonのpandas pandasとは Pythonのpandasは、データ解析を支援する機能を提供するPythonのライブラリであり、効率的な二次元データ操作のためのDataFrameという形式の議論を使って、csvファイルやExc...
pandas

pythonのバイナリ化・exe化できない?仮想環境で軽量化

pythonスクリプトをwindowsプログラム化(exe化)できる? pythonスクリプトをwindowsプログラム化する(exe化する)ことが可能です。ただし、pythonのバージョンや開発環境が異なるとexe化することができない場合...