我编写了一个适用于 csv 文件的代码,但是如果我将文件类型从 csv 更改为 excel,它会给我一个错误。我有,data = pd.read_excel(filename)如果我写,上面的行不适用于excel data = pd.read_csv(filename),它工作正常。我希望我在 excel 中的输入数据不是 csv。import tkinter as tkimport pandas as pdfrom tkinter.filedialog import askopenfilenameimport xlrddef latlong_func(filename): # filename instead of r'C:/Users/patesari/Desktop/python work/Gap1.csv' data = pd.read_excel(filename) #df = pd.DataFrame(data, columns=['SUPPLIER_ID','ACTION']) data["latlong"] = 'FALSE' data.loc[ (data["LONGITUDE"] >= 70.0000) & (data["LONGITUDE"] <= 98.0000) & (data["LONGITUDE"] != 'nan') & (data["LATITUDE"] != 'nan')& (data["LATITUDE"] >= 6.0000) & (data["LATITUDE"] <= 36.000), ["latlong"]] = '' data.to_csv("practice1.csv") writer = data[data["latlong"]==''] writer.to_csv('newfile1.csv') writer.to_csv('latlong1.csv') print("Kindly ignore the message..your output is genrated sucessfully....") def get_filename(): filename = askopenfilename(filetypes =[('Python Files', '*.xlsx')]) if filename: lbl['text'] = filename # display filename in Label latlong_func(filename) else: lbl['text'] = 'not selected' # --- main --- root = tk.Tk() root.geometry('200x100') lbl = tk.Label(root, text='Select filename') lbl.pack(side='top', pady=10) btn = tk.Button(root, text='Open', command=get_filename) btn.pack(side='top', pady=10) root.mainloop()有人请帮助我知道我在哪里做错了。
2 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
请检查您的 excel 文件扩展名,假设filename=file.csv
这样data=pd.read_csv(filename)
可以工作
或者
如果filename=file.xlsx
那么data=pd.read_excel(filename)
会工作
如果您想在 excel 中输入数据而不是 csv,则使用以下代码将 .csv 转换为 .xlsx,然后选择转换后的文件并用于data=pd.read_csv(filename)
读取您的 excel 文件
export_excel = df.to_excel ('file_path_to_save', index = None, header=True)#Don't forget to add '.xlsx' at the end of the path
希望这对你有用
如果我的回答为您提供解决方案,请投票谢谢
潇湘沐
TA贡献1816条经验 获得超6个赞
KeyError:“经度”
Pandas excel解析和csv解析会有所不同。话虽如此,尝试通过打印“数据”来查看两种方法调用之间的区别
如果您的文件扩展名正确,那么我建议您尝试使用其他 xlsx 解析器库,例如“pyexcel”(您可以使用此库进行读/写)。http://docs.pyexcel.org/en/latest/。您将能够看到 Excel 中的表格数据如何更改为不同的数据结构,例如“列表列表”或“元组列表”等。
添加回答
举报
0/150
提交
取消