首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas groupby操作返回对象,但没有可视对象

Pandas groupby操作返回对象,但没有可视对象
EN

Stack Overflow用户
提问于 2017-04-26 03:22:06
回答 2查看 1K关注 0票数 1

刚接触Pandas (2天),并在我的学院奖数据集上运行了以下groupby命令。

代码语言:javascript
复制
df[(df.Award == 'Best Actress') & (df.Winner == 1.0)].groupby('Name')

我收到了以下输出,通常在可视化之前,但这次不是。

代码语言:javascript
复制
<pandas.core.groupby.DataFrameGroupBy object at 0x1166b8cc0>

我期待的是所有获得奥斯卡最佳女主角的女演员的名单,按她们各自的名字分组。

为什么不是chart呢?

编辑:

数据如下所示。。。

代码语言:javascript
复制
    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
EN

回答 2

Stack Overflow用户

发布于 2017-04-26 04:12:56

我收到了以下输出,通常在可视化之前,但这次不是。

代码语言:javascript
复制
<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();取消该输出

话虽如此,我仍然不确定你对图表的期望是什么

代码语言:javascript
复制
df.query('Award == "Actress"').set_index('Name').Winner.plot.bar()

票数 3
EN

Stack Overflow用户

发布于 2017-04-26 03:35:23

我认为,如果需要过滤列的计数,则需要groupby并聚合一些像size这样的函数,对于plot函数plotplot.bar

代码语言:javascript
复制
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

代码语言:javascript
复制
df.loc[(df.Award == 'Best Actress') & (df.Winner == 1.0), 'Name'].value_counts().plot()

编辑:

我认为非常好的教程是10 Minutes to pandas

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43619244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档