2017-03-04 80 views
4

我有熊貓以下數據幀...AttributeError的:「功能」對象有沒有屬性「和」大熊貓

+-----------------------+ 
|    | 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。我無法弄清楚代碼有什麼問題。

+0

count是列名稱。我可以做'death_2013.count.apply'或'death_2013 ['count']。apply',但它們都不起作用。奇怪的是,我有這一行代碼使用不同的數據集。 – Gilbert

+0

錯誤信息提示它是函數對象 –

+0

爲什麼不''death_2013 ['count']。apply()'? OMG !!! –

回答

2

有一個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()))
+0

我寧願改變變量名。我在你的解決方案之前解決它。感謝您確認我的懷疑。 – Gilbert

+0

@Gilbert不客氣!這是使用該語法的一個缺點,同時試圖設置一個新列。 – miradulo

1

問題是數據幀有一個count方法。如果你想運行在一個名爲列countapply()使用語法

death_2013['count'].apply() 

另外,重命名列。

相關問題