【问题标题】:How to import file CSV to python and search data in CSV file?如何将文件 CSV 导入 python 并在 CSV 文件中搜索数据?
【发布时间】:2019-12-04 06:56:46
【问题描述】:

我是 python 新手。这就是我卡住的地方。我需要将 CSV 导入 python 并创建一个搜索引擎,我需要通过输入信息准确定位小包或大包的数据。我正在尝试放置状态信息。如果我想输入诸如 2015 年之类的年份,它如何消除不在 2015 年调查部分中的状态?例如,我把 2015 年放在状态框中,它不会出现 2016 年调查的任何状态。最后,这个搜索引擎如何给用户通过消息窗口搜索到的小包大包的准确数据呢? 我非常感谢您的帮助。 Here is the csv file link,

import tkinter
import tkinter.ttk
import tkinter.messagebox
import csv
#Create the GUI
root = tkinter.Tk()
root.title("Avocado Search Engine")
root.configure( bg = "khaki1")
def show():
    """Shows the data in cvs file"""
    global state_box
    global year_box
    with open("avocado.csv") as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        for row in csv_file:


            if state_box.get() == "Albany" and size_box.get() == "Small bag":
                print(row[8])


#State label
state_label= tkinter.Label(root, text = "Choose the state")
state_label.grid(row = 0, column = 0)
state_label.configure( bg = "khaki1")
#State box 
state_box = tkinter.ttk.Combobox(root, values = ["Albany","Atlanta","Boise"], state = "readonly")
state_box.grid(row = 0, column = 1)
state_box.current(0)
#Size label
size_label= tkinter.Label(root, text = "Choose the bag size")
size_label.grid(row = 0, column = 2)
size_label.configure( bg = "khaki1")
#Size box
size_box = tkinter.ttk.Combobox(root, values = ["Small bag","Large bag"], state = "readonly")
size_box.grid(row = 0, column = 3)
size_box.current(0)
#Show box
show_button = tkinter.Button(root, text = " Search", command = show)
show_button.configure( bg = "spring green")
show_button.grid(row = 0, column = 4)
#Quit
quit_button = tkinter.Button(root, text = " Quit", command = root.destroy)
quit_button.configure( bg = "red2")
quit_button.grid(row = 1, column = 4)
root.mainloop()

【问题讨论】:

  • 我建议使用 pandas 来处理 csv。

标签: python python-3.x csv search tkinter


【解决方案1】:

使用熊猫库。 要将 csv 导入您的 python 文件,请使用: df =pd.read_csv("你的 csv 的完整路径")

例如 df =pd.read_csv("C:/user/user/Desktop/mycsv.csv")

要根据标准获取信息,请考虑使用 loc。

df.loc[df.(您要用于比较的列) == 2015]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 2014-11-27
    • 2011-08-30
    • 2021-05-17
    • 1970-01-01
    • 2013-12-06
    • 2020-01-10
    • 2014-11-19
    相关资源
    最近更新 更多