运行此代码时,我收到 AttributeError: 'dict' object has no attribute 'drop_duplicates' ,有什么想法如何解决此问题吗?
第一个模块interface.py
import tkinter as tk
from tkinter import filedialog
import pandas as pd
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 720, height = 360, bg = 'lightsteelblue')
canvas1.pack()
def getExcel ():
global df
import_file_path = filedialog.askopenfilename()
df = pd.read_excel(import_file_path, sheet_name=None)
return df
browseButton_Excel = tk.Button(text='Import Excel File', command=getExcel, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(360, 180, window=browseButton_Excel)
root.mainloop()
第二个模块
import interface
bgxp = []
data = interface.df
#data = pd.ExcelFile(r'C:\Users\us\Desktop\grauation project\Deliveries 12-3-2017.xlsx')
#data = pd.concat(pd.read_excel('Todays sheet.xlsx', sheet_name=None), ignore_index=True)
#data1 drops all dublicates from sheet
data1 = data.drop_duplicates(subset=["Ref/Lic Nr"], keep="first")
#data = interface.df
cr = pd.DataFrame(data1,columns= ['Carrier'])
rf = pd.DataFrame(data1,columns= ['Ref/Lic Nr'])
#Locks data from column
amtg = data1.loc[data1.Carrier=='AMTG', 'Ref/Lic Nr']
# without index
amtg1=(amtg.to_string(index=False, header=False))
最佳答案
pd.read_excel
Returns DataFrame or dict of DataFrames
当您指定 sheet_name=None
时,它会读取所有工作表,因此返回的对象是以下形式的 DataFrame 字典:{sheet_name: pd.数据框}
如果所有工作表共享相似的字段,一个好的解决方案是将其转换为多索引数据帧,其中工作表名称被添加为第 0 个索引级别。
df = pd.concat(pd.read_excel(import_file_path, sheet_name=None))
否则,您需要迭代该字典。
关于python - 属性错误: 'dict' object has no attribute 'drop_duplicates' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63208490/