AttributeError:'功能'对象没有属性' sum'大熊猫

时间:2017-03-04 23:03:59

标签: python python-3.x pandas dataframe

我在Pandas中有以下数据框......

+-----------------------+
|              | count  |
+-----------------------+
| group        |        |
+-----------------------+
| 11-          | 99435  |
+-----------------------+
| Bachelor+    | 64900  |
+-----------------------+
| Just 12      | 162483 |
+-----------------------+
| Some College | 61782  |
+-----------------------+

我想执行以下代码,但我收到错误...

death_2013['percent_of_total'] = death_2013.count.apply(
     lambda x: (x / death_2013.count.sum()))

我收到以下错误...

AttributeError: 'function' object has no attribute 'apply'

我检查了death_2013.dtypescount是一个int64。我无法弄清楚代码有什么问题。

2 个答案:

答案 0 :(得分:3)

有一个pandas.DataFrame.count方法,它会隐藏列的名称。这就是您收到此错误消息的原因 - 正在访问绑定方法count,这显然不起作用。

在这种情况下,您只需使用['name_of_column']语法访问两个位置的count列,并在将来命名列时注意DataFrame方法名称。

death_2013['percent_of_total'] = death_2013['count'].apply(
    lambda x: (x / death_2013['count'].sum()))

但请注意,在这种特殊情况下,不需要使用apply - 您可以简单地将整个系列除以平均值。

death_2013['count'] / death_2013['count'].sum()

答案 1 :(得分:1)

问题是数据框有count方法。如果要在名为apply()的列上运行count,请使用语法

death_2013['count'].apply()

或者,重命名该列。