首页 > 解决方案 > 如何在 tkinter 中显示熊猫数据农场

问题描述

我从 python 中的 csv 文件创建了一个 pandas 数据框。如何在 tkinter 窗口中显示此数据框。

import pandas as pd
methods = pd.read_csv('metode.csv')
methods = methods.drop(methods.columns[[0]], axis=1)

标签: pythonpandasdataframetkinter

解决方案


这是创建具有平方根的 csv 文件的示例;读取 csv 并将其绘制在 tkinter 中。要捕获 matplotlib 图,您必须使用FigureCanvasTkAggmpl 图和 tkinter 图链接,ax=tk_ax如下例所示。

import pandas as pd
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# create the csv file with square roots
squareroots = [(i, i**0.5) for i in range(0, 100)]
squareroot_df = pd.DataFrame(squareroots, columns=['i', 'i^0.5'])
squareroot_df.to_csv('temp_squareroots.csv', index=False)

# set up the tkinter GUI
root = tk.Tk()
fig, tk_ax = plt.subplots(figsize=(10, 10))
mpl_plot = FigureCanvasTkAgg(fig, root)
mpl_plot.get_tk_widget().pack()

# read the csv file
square_roots_df = pd.read_csv('temp_squareroots.csv')

# plot the values in the data frame and invert the x-axis
mpl_ax = square_roots_df.plot(x='i', y='i^0.5', color='firebrick', ax=tk_ax)
mpl_ax.invert_xaxis()

root.mainloop()

无论如何,在 matplotlib 中绘图要容易得多:

import pandas as pd
import matplotlib.pyplot as plt

squareroots = [(i, i**0.5) for i in range(0, 100)]
squareroot_df = pd.DataFrame(squareroots, columns=['i', 'i^0.5'])
squareroot_df.to_csv('temp_squareroots.csv', index=False)

square_roots_df = pd.read_csv('temp_squareroots.csv')

ax = square_roots_df.plot(x='i', y='i^0.5', color='firebrick')
ax.invert_xaxis()

plt.show()

注意我添加mpl_ax.invert_xaxis()只是为了显示你可以调整你的情节来操纵mpl_ax对象。(参见Matplotlib 文档)


推荐阅读