为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“pandas.core.common”没有属性“AbstractMethodError”?

如何修复“pandas.core.common”没有属性“AbstractMethodError”?

互换的青春 2021-11-09 20:31:15
我想查看可用于 Pandas 对象的方法。当我运行此代码时,出现 AttributeError 错误。我已经搜索过但没有找到此错误的示例或如何修复它。for i in (df_jobs.groupby(['group', 'failed'])['failed']):    object_methods = [method_name for method_name in dir(i[1])                      if callable(getattr(i[1], method_name))]    breakAttributeError                            Traceback (most recent call last)<ipython-input-322-70ac95067677> in <module>     54 #     print(i[1].count())  # YES YES YES     55 ---> 56     object_methods = [method_name for method_name in dir(i[1])     57                       if callable(getattr(i[1], method_name))]     58     break<ipython-input-322-70ac95067677> in <listcomp>(.0)     55      56     object_methods = [method_name for method_name in dir(i[1])---> 57                       if callable(getattr(i[1], method_name))]     58     break     59 ~\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)   4374             if self._info_axis._can_hold_identifiers_and_holds_name(name):   4375                 return self[name]-> 4376             return object.__getattribute__(self, name)   4377    4378     def __setattr__(self, name, value):~\Anaconda3\lib\site-packages\pandas\core\generic.py in _constructor_sliced(self)    222         original, such as DataFrame single columns slicing.    223         """--> 224         raise com.AbstractMethodError(self)    225     226     @propertyAttributeError: module 'pandas.core.common' has no attribute 'AbstractMethodError'我本周卸载/重新安装了 Anaconda。熊猫 0.23.4 py37h830ac7b_0服务器信息:您正在使用 Jupyter 笔记本。笔记本服务器的版本为:5.7.4-f6790e4服务器在此版本的 Python 上运行:Python 3.7.1(默认,2018 年 12 月 10 日,22:54:23)[MSC v.1915 64 位 (AMD64) ]当前内核信息:Python 3.7.1(默认,2018 年 12 月 10 日,22:54:23)[MSC v.1915 64 位(AMD64)]IPython 7.2.0——增强的交互式 Python。类型 '?' 求助。
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

好的,您的代码的问题是您如何迭代 group by 的结果。


这个答案显示了如何正确迭代。


此代码显示了如何完成您的任务:


import pandas as pd


def method1():

    return 0


exampleDf = pd.DataFrame(columns=["name","group","failed"])


exampleDf.loc[0] = ["method1", "failed", 1]

exampleDf.loc[1] = ["method2", "success", 0]

exampleDf.loc[2] = ["method3", "success", 0]

exampleDf.loc[3] = ["method4", "failed", 1]


groupedDf = exampleDf.groupby(['group', 'failed'])


for params, table in groupedDf:

    print("Iterating over the table with the params: " + str(params) )

    print("Table: \n" + str(table))


    for index, row in table.iterrows():

        if(row['name'] in dir()):

            print("The method " + str(row['name']) + " is defined.")

输出:


Iterating over the table with the params: ('failed', 1)

Table: 

      name   group failed

0  method1  failed      1

3  method4  failed      1

The method method1 is defined.

Iterating over the table with the params: ('success', 0)

Table: 

      name    group failed

1  method2  success      0

2  method3  success      0


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信