title: How to display a dataframe in tkinter
body: <p>I am new to Python and even newer to tkinter.  </p>
  
  <p>I've utilised code from stackoverflow (<a href="https://stackoverflow.com/questions/7546050/switch-between-two-frames-in-tkinter">Switch between two frames in tkinter</a>) to produce a program where new frames are called and placed on top of each other depending on what options the user selects.  A stripped down version of my code is below.  There are a lot more frames. </p>
  
  <pre><code>import tkinter as tk                
  from tkinter import font  as tkfont 
  import pandas as pd
  
  class My_GUI(tk.Tk):
  
      def __init__(self, *args, **kwargs):
          tk.Tk.__init__(self, *args, **kwargs)
  
          self.title_font = tkfont.Font(family='Helvetica', size=18, weight="bold", slant="italic")
  
  
          container = tk.Frame(self)
          container.pack(side="top", fill="both", expand=True)
          container.grid_rowconfigure(0, weight=1)
          container.grid_columnconfigure(0, weight=1)
  
          self.frames = {}
          for F in (StartPage, Page_2):
              page_name = F.__name__
              frame = F(parent=container, controller=self)
              self.frames[page_name] = frame
  
  
              frame.grid(row=0, column=0, sticky="nsew")
  
          self.show_frame("StartPage")
  
      def show_frame(self, page_name):
          '''Show a frame for the given page name'''
          frame = self.frames[page_name]
          frame.tkraise()
  
  class StartPage(tk.Frame):
  
      def __init__(self, parent, controller):
          tk.Frame.__init__(self, parent)
          self.controller = controller
          label = tk.Label(self, text="Welcome to....", font=controller.title_font)
          label.pack(side="top", fill="x", pady=10)
  
          button1 = tk.Button(self, text="Option selected",
                              command=lambda: controller.show_frame("Page_2"))
          button1.pack()
  
  
  
  class Page_2(tk.Frame):
  
      def __init__(self, parent, controller):
          tk.Frame.__init__(self, parent)
          self.controller = controller
          label = tk.Label(self, text="The payment options are displayed below", font=controller.title_font)
          label.pack(side="top", fill="x", pady=10)
  
          #I want the able to be display the dataframe here
  
          button = tk.Button(self, text="Restart",
                             command=lambda: controller.show_frame("StartPage"))
          button.pack()
  
  a = {'Option_1':[150,82.50,150,157.50,78.75],
       'Option2':[245,134.75,245,257.25,128.63]}
  df = pd.DataFrame(a,index=['a',
                      'b',
                      'c',
                      'd',
                      'e']) 
  
  print(df.iloc[:6,1:2])
  
  if __name__ == "__main__":
      app = My_GUI()
      app.mainloop()
  </code></pre>
  
  <p>When Page_2 appears I want it to display a dataframe with the code below.</p>
  
  <pre><code>a = {'Option_1':[150,82.50,150,157.50,78.75],
       'Option2':[245,134.75,245,257.25,128.63]}
  df = pd.DataFrame(a,index=['a',
                      'b',
                      'c',
                      'd',
                      'e']) 
  
  print(df.iloc[:6,1:2])
  </code></pre>
  
  <p>I've searched SO e.g. <a href="https://stackoverflow.com/questions/42445059/how-to-display-a-pandas-dataframe-in-a-tkinter-window-tk-frame-to-be-precise">How to display a pandas dataframe in a tkinter window (tk frame to be precise)</a> (no answer provided) and other websites for an answer to similar question but without success.</p>
  
  <p>How and where would I place my dataframe code selection to appear in the area I want when I select Page_2?  </p>