刚接触Pandas (2天),并在我的学院奖数据集上运行了以下groupby命令。
df[(df.Award == 'Best Actress') & (df.Winner == 1.0)].groupby('Name')我收到了以下输出,通常在可视化之前,但这次不是。
<pandas.core.groupby.DataFrameGroupBy object at 0x1166b8cc0>我期待的是所有获得奥斯卡最佳女主角的女演员的名单,按她们各自的名字分组。
为什么不是chart呢?
编辑:
数据如下所示。。。
Year Ceremony Award Winner Name Film
0 1928 1 Actor 0.0 Richard Barthelmess The Noose
1 1928 1 Actor 1.0 Emil Jannings The Last Command
2 1928 1 Actress 0.0 Louise Dresser A Ship Comes In
3 1928 1 Actress 1.0 Janet Gaynor 7th Heaven
4 1928 1 Actress 0.0 Gloria Swanson Sadie Thompson
5 1928 1 Art Dir 0.0 Rochus Gliese Sunrise发布于 2017-04-26 04:12:56
我收到了以下输出,通常在可视化之前,但这次不是。
<pandas.core.groupby.DataFrameGroupBy object at 0x1166b8cc0>这是,而不是与可视化之前相同的东西。
此是pandas DataFrameGroupBy对象的文本表示形式。
在Python中,一切都是对象。然而,并不是每个对象都有一种直观的方式将自己呈现在屏幕上。其中有一个名为__repr__的方法,它控制该对象的文本表示。在本例中,df.groupby('col_name')返回一个DataFrameGroupBy对象。该对象的__repr__方法返回您看到的<pandas.core.groupby.DataFrameGroupBy object at 0x1166b8cc0>字符串。该方法通常使用<>包装生成对象类的通用描述。
看起来很眼熟的是那个<>。matplotlib输出轴的__repr__:df.plot()生成<matplotlib.axes._subplots.AxesSubplot at 0x11a2b9cf8>。事实上,您可以使用分号df.plot();取消该输出
话虽如此,我仍然不确定你对图表的期望是什么
df.query('Award == "Actress"').set_index('Name').Winner.plot.bar()

发布于 2017-04-26 03:35:23
我认为,如果需要过滤列的计数,则需要groupby并聚合一些像size这样的函数,对于plot函数plot或plot.bar
df[(df.Award == 'Best Actress') & (df.Winner == 1.0)].groupby('Name').size().plot()
df[(df.Award == 'Best Actress') & (df.Winner == 1.0)].groupby('Name').size().plot.bar() 或者使用value_counts
df.loc[(df.Award == 'Best Actress') & (df.Winner == 1.0), 'Name'].value_counts().plot()编辑:
我认为非常好的教程是10 Minutes to pandas。
https://stackoverflow.com/questions/43619244
复制相似问题