Opening and Reading a csv file using read_csv from Tkinter GUI
<pre><code>from tkinter import filedialog, Label, Button, Entry, StringVar
from tkinter.filedialog import askopenfile
import pandas as pd

root = tk.Tk()
Label(root, text='File Path').grid(row=0, column=0)
v = StringVar()
entry = Entry(root, textvariable=v).grid(row=0, column=1)
Button(root, text='Browse Data Set',command=lambda:   v.set(askopenfile())).grid(row=1, column=0)
Button(root, text='Close',command=root.quit()).grid(row=1, column=1)
root.file = v.get()
df = pd.read_csv(root.file)
root.mainloop()
</code></pre>

<p>I want to open a dataset (CSV file) on the click of a button and read it using  <code>pd.read_csv()</code> function  i am getting  some errors</p>

<pre><code>Traceback (most recent call last):
  File "/home/abishek/PycharmProjects/untitled1/temp.py", line 21, in &lt;module&gt;
    df = pd.read_csv(root.file)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 498, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 275, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 590, in __init__
    self._make_engine(self.engine)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 731, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 1103, in __init__
    self._reader = _parser.TextReader(src, **kwds)
  File "pandas/parser.pyx", line 353, in pandas.parser.TextReader.__cinit__ (pandas/parser.c:3246)
  File "pandas/parser.pyx", line 591, in pandas.parser.TextReader._setup_parser_source (pandas/parser.c:6111)
OSError: File b'' does not exist

Process finished with exit code 1
</code></pre>

<p>Please Help me with this one i am new to Tkinter</p>

<p>I Have done the first part now i have an other problem </p>

<p>1.I browsed a file 
2.I will get the columns of the data Frame using <code>list(df)</code> and i wanted it to displayed it in an option menu  i am doing it with the following code </p>

<pre><code>import tkinter as tk
from tkinter.filedialog import askopenfilename
import pandas as pd

root = tk.Tk()
v = tk.StringVar(root)
v1 = tk.StringVar(root)
v2 = tk.StringVar(root)
v3 = tk.StringVar(root)
df = pd.DataFrame()
col = []
ss = ['a','b','c','d','e']


def get_data_frame():
    global v
    global df
    global col
    file_name = askopenfilename()
    v.set(file_name)
    df = pd.read_csv(file_name)
    col = list(df)
    print(col)


def fill():
    return list(df)


tk.Label(root, text='File Path').grid(row=0, column=0)
entry = tk.Entry(root, textvariable=v).grid(row=0, column=1)
tk.Button(root, text='Browse Data Set', command=get_data_frame).grid(row=0, column=3)
tk.Label(root, text='Class LabelAttribute').grid(row=1, column=0)
tk.OptionMenu(root,v1,*col).grid(row=1, column=1)
v1.set('Nil')
tk.Label(root, text='Row Counter Attribute').grid(row=2, column=0)
v2.set('Nil')
tk.OptionMenu(root,v2,*col).grid(row=2, column=1)
tk.Button(root, text='Close', command=root.destroy).grid(row=5, column=3)
tk.Entry(root, textvariable=v3).grid(row=6, column=0)
tk.Button(root, text='Setter', command=lambda: v3.set(type(col[0]))).grid(row=6, column=1)
v3.set(col)
root.mainloop()
print(col)
</code></pre>

<p>but python is giving the following error</p>

<pre><code>Traceback (most recent call last):
  File "/home/abishek/PycharmProjects/untitled1/GUI.py", line 34, in &lt;module&gt;
    tk.OptionMenu(root,v1,*col).grid(row=1, column=1)
TypeError: __init__() missing 1 required positional argument: 'value'
</code></pre>