2017-07-18 20 views
1

使用熊貓,我想用繪製一些數據:熊貓 - df.size()錯誤: 'numpy.int64' 對象不是可調用

df.size().unstack().plot(kind=barh) 

,但我得到這個錯誤:

TypeError: 'numpy.int64' object is not callable 

然後我只試着df.size()並得到了同樣的錯誤。現在我不確定是什麼原因造成的,因爲根據文檔,DataFrame.size()應該正常工作。任何想法?

回答

3

有你需要DataFrame.size省略()一個問題,但輸出是標量,所以不可能調用unstack

df.size 

樣品:

df = pd.DataFrame({'A':list('abcdef'), 
        'B':[4,5,4,5,5,4], 
        'C':[7,8,9,4,2,3], 
        'D':[1,3,5,7,1,0], 
        'E':[5,3,6,9,2,4], 
        'F':list('aaabbb')}) 

print (df) 
    A B C D E F 
0 a 4 7 1 5 a 
1 b 5 8 3 3 a 
2 c 4 9 5 6 a 
3 d 5 4 7 9 b 
4 e 5 2 1 2 b 
5 f 4 3 0 4 b 

a = df.size 
print (a) 
36 

也許需要groupby + GroupBy.size()

df1 = df.groupby(['F', 'B']).size().unstack() 
print (df1) 
B 4 5 
F  
a 2 1 
b 1 2 
+0

Thanks lo lo噸澄清!我只注意到GroupBy.size()與df.size不同。我正在從一本書中學習一個教程,但沒有提到。無論如何,再次感謝! @jezrael – Shadin

+0

很高興可以提供幫助。我第一次使用'df.size',所以首先我認爲輸出是數據框的長度;)祝你好運! – jezrael