Skip to main content
 首页 » 编程设计

python之Pandas groupby 操作返回对象,但没有可视化

2025年05月04日24三少

对 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()