对 Pandas 非常陌生(2 天),并在我的奥斯卡金像奖数据集上运行了以下 groupby 命令。
df[(df.Award == 'Best Actress') & (df.Winner == 1.0)].groupby('Name')
我收到以下输出,通常在可视化之前,但这次不是。
<pandas.core.groupby.DataFrameGroupBy object at 0x1166b8cc0>
我期待获得奥斯卡“最佳(女主角)”奖的所有女 Actor 按她们各自的名字分组的图表。
为什么不用图表?
编辑:
数据看起来像这样。 . .
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
请您参考如下方法:
I received the following output, which usually precedes a visualisation, but not this time.
<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()
