NokkunBlog

Keep technology simple.

【Tkinter】PandasのデータフレームをTreeviewに表示する方法

こんにちは、のっくんです。

PythonのTkinterを使って簡単なGUIアプリケーションを作ってみました。

Pandasのデータフレームを読み込んでそれをGUI上に表示するアプリです。

出来上がったアプリはこんな感じ。

Pandasのデータフレームを表示するならJupyter Notebook上で表示すれば良いのですが、

ユーザのボタンクリックなどの動作を実装する場合はTkinterを使ってGUIにした方が良いと思います。

それではコードを順番に見ていきます。

import tkinter as tk
import tkinter.ttk as ttk
import pandas as pd

file_name = "ranking.pkl"

df = pd.read_pickle(file_name)

base = tk.Tk()
base.title("RankChecker")
base.geometry("400x300")

予め保存しておいたピクルを読み込んでデータフレームを取得しています。

次にGUIアプリのタイトルとサイズを決めています。

TreeViewを作る部分は以下の通り。

tree = ttk.Treeview(base)

# 列を3列作る
tree["column"] = (1, 2, 3)
tree["show"] = "headings"

# ヘッダーテキスト
tree.heading(1, text="検索ワード")
tree.heading(2, text="ランキング(ドメイン)")
tree.heading(3, text="ランキング(URL)")

# 列の幅
tree.column(1, width=200)
tree.column(2, width=100)
tree.column(3, width=100)

# データ挿入
for i in range(df.index):
    tree.insert("", "end", values=(df['SearchTerm'][i], df['Ranking(Domain)'][i], df['Ranking(URL)'][i]))

# 設置
tree.pack(side=tk.TOP, fill=tk.BOTH, expand=1)

base.mainloop()

肝はデータを挿入するところですね。

データフレームの要素を1つ1つ指定して、Treeviewに挿入していきます。

このようにfor文を使って書くと、データフレームの全部の要素をTreeviewに表示させることができます。