【问题标题】:AttributeError: 'dict' object has no attribute 'drop_duplicates'AttributeError:“dict”对象没有属性“drop_duplicates”
【发布时间】:2020-11-22 06:48:27
【问题描述】:

我得到 AttributeError: 'dict' object has no attribute 'drop_duplicates' when running this code 有什么想法可以解决这个问题吗?

第一个模块 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))

【问题讨论】:

  • 第一个模块是否命名为 interface.py?
  • 是的,让我更新一下问题
  • 让我们调试一下。在两个地方添加print(df):接口模块作为最后一行,第二个模块在你分配数据之后

标签: python pandas dataframe


【解决方案1】:

pd.read_excel

返回数据帧或数据帧的字典

当您指定 sheet_name=None 时,它会在 all 工作表中读取,因此返回的对象是 DataFrame 的字典,格式为:{sheet_name: pd.DataFrame}


如果所有工作表共享相似的字段,一个好的解决方案是将其转换为 MultiIndexed DataFrame,其中将 sheet_names 添加为第 0 个索引级别。

df = pd.concat(pd.read_excel(import_file_path, sheet_name=None))

否则你需要遍历字典。

【讨论】:

  • 感谢您的精彩解释,我是整个 python 编码的新手,这个答案正是我所需要的)
  • @YaroslawKorol,欢迎来到 SO.. 如果您觉得上述答案对您有所帮助,您可以 accept the answer。
猜你喜欢
  • 2018-09-02
  • 2021-01-30
  • 2020-09-11
  • 2021-06-07
  • 2021-12-28
  • 2019-03-31
  • 2023-03-17
  • 2017-07-13
  • 1970-01-01
相关资源
最近更新 更多