绘制直方图:TypeError:无法使用灵活类型执行reduce

时间:2017-04-27 18:30:37

标签: python matplotlib histogram

我有一个数据框,我需要绘制一个列的直方图,但IO不断出错。这是我的代码:

import pandas as pd  
import matplotlib.pyplot as plt  
import numpy as np  

    data = df[['col']]  
    data.info()>>>  
    RangeIndex: 183404 entries, 0 to 183403
    Data columns (total 1 columns):
    col    183404 non-null int64
    dtypes: int64(1)  

    bins = np.arange(-100, 100, 5)  
    plt.hist(data , bins = bins)    
    plt.show()  

我一直收到错误TypeError:无法使用灵活类型执行reduce,我不知道为什么。

谢谢。

2 个答案:

答案 0 :(得分:1)

plt.hist不需要DataFrame。它需要“(n,)数组或(n,)数组序列”。

取而代之的是:

plt.hist(data.values, bins=bins)

另外,您可以这样做,因为pd.Seriesplt.hist合作:

plt.hist(df['col'], bins=bins)

答案 1 :(得分:0)

还有一个DataFrame built in function来执行此操作:

df.hist('col', bins = 5)

Bins可能与您期望的工作方式不同,请参阅文档。它需要一个int作为bin的数量(默认为10)