过滤数据帧的熊猫直方图

mar*_*ion 8 python matplotlib histogram pandas

这让我在最后一小时疯了.我可以在使用时绘制直方图:

hist(df.GVW, bins=50, range=(0,200))
Run Code Online (Sandbox Code Playgroud)

当我需要在其中一列中过滤给定条件的数据帧时,我使用以下内容,例如:

df[df.TYPE=='SU4']
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切正常.当我试图得到这个过滤数据的直方图时,我得到一个关键错误:KeyError: 0L.我将以下内容用于过滤数据的直方图:

hist(df[df.TYPE=='SU4'].GVW, bins=50, range=(0,200))
Run Code Online (Sandbox Code Playgroud)

某处有语法错误吗?谢谢您的帮助!

jor*_*ris 10

也许尝试使用该.values属性(这会将数据作为numpy数组返回),因此:

hist(df[df.TYPE=='SU4'].GVW.values, bins=50, range=(0,200))
Run Code Online (Sandbox Code Playgroud)

我认为这不起作用的原因是因为matplotlib hist方法试图访问0输入的第一个-index元素.但是因为系列使用其整数索引作为标签而不是位置,这给切片系列带来了关键错误(因为第一个元素不再具有索引0)


事实上,正如@AndyHayden所说,你也可以使用熊猫hist方法:

df[df.TYPE=='SU4'].GVW.hist(bins=50)
Run Code Online (Sandbox Code Playgroud)