猿问

python代码不适用于excel但适用于csv文件

我编写了一个适用于 csv 文件的代码,但是如果我将文件类型从 csv 更改为 excel,它会给我一个错误。


我有,data = pd.read_excel(filename)如果我写,上面的行不适用于excel data = pd.read_csv(filename),它工作正常。我希望我在 excel 中的输入数据不是 csv。


import tkinter as tk

import pandas as pd

from tkinter.filedialog import askopenfilename

import xlrd


def 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()

有人请帮助我知道我在哪里做错了。



青春有我
浏览 112回答 2
2回答

德玛西亚99

请检查您的 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&nbsp;=&nbsp;df.to_excel&nbsp;('file_path_to_save',&nbsp;index&nbsp;=&nbsp;None,&nbsp;header=True)#Don't&nbsp;forget&nbsp;to&nbsp;add&nbsp;'.xlsx'&nbsp;at&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;path希望这对你有用如果我的回答为您提供解决方案,请投票谢谢

潇湘沐

KeyError:“经度”Pandas&nbsp;excel解析和csv解析会有所不同。话虽如此,尝试通过打印“数据”来查看两种方法调用之间的区别如果您的文件扩展名正确,那么我建议您尝试使用其他 xlsx 解析器库,例如“pyexcel”(您可以使用此库进行读/写)。http://docs.pyexcel.org/en/latest/。您将能够看到 Excel 中的表格数据如何更改为不同的数据结构,例如“列表列表”或“元组列表”等。
随时随地看视频慕课网APP

相关分类

Python
我要回答