pandas运行报错AttributeError: module 'pandas' has no attribute 'drop_duplicates'如何解决
报错原因分析
- 直接原因:
drop_duplicates不是pandas模块(你代码里导入为pd)的顶层方法,是DataFrame/Series实例对象的专属方法,不能通过pd.直接调用,必须在你生成的DataFrame变量上调用。
你当前的错误代码行:
result = pd.drop_duplicates(subset='Trade ID', keep="first")
修正为:
result = result.drop_duplicates(subset='Trade ID', keep="first")
如果这段代码此前确实可以正常运行,大概率是近期修改代码时误把实例调用改成了pd模块调用,或是存在变量名覆盖问题导致result没有被正确赋值为DataFrame对象。
代码其他潜在问题
- 路径拼接错误:直接用字符串拼接工作目录和文件名容易出现路径分隔符缺失问题,建议用
os.path.join处理路径,避免找不到文件报错 - 变量名拼写错误:最后
return results的变量名和前面定义的result不一致,运行时会触发NameError
修正后完整代码
import os import pandas as pd def The_function(): file = os.path.join(os.getcwd(), "the_file.xls") xls = pd.ExcelFile(file) the_sheets = [] for sheet in xls.sheet_names: the_sheets.append(xls.parse(sheet)) result = pd.concat(the_sheets) result = result.drop_duplicates(subset='Trade ID', keep="first") return result
内容的提问来源于stack exchange,提问作者11l
相关产品推荐
相关产品推荐

