首页 > 解决方案 > 如何在分组和聚合操作后访问 Pandas DataFrame 中的某一行

问题描述

我想在分组和聚合操作之后访问 Pandas DataFrame 中的一行。

import pandas as pd
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                           'foo', 'bar'],
                    'B' : [1, 2, 3, 4, 5, 6],
                    'C' : [2.0, 5., 8., 1., 2., 9.]})

grouped = df.groupby('A').agg({"C":{"size","mean"}})

分组

现在我想访问 A 的值为“foo”的行。当我尝试使用grouped[grouped["A"]=="foo"]时,我收到一条错误消息KeyError: 'A'

具体来说,我想要“foo”的大小。

在网上搜索的时候,看到几篇与multiIndex相关的帖子。但我无法让它工作。

这似乎是一个微不足道的问题。我是 Pandas 的新手,发现它有点难以理解。

标签: python-3.xpandasdataframe

解决方案


你应该使用loc

grouped.loc['foo']
Out[1]: 
C  size    3.0
   mean    4.0
Name: foo, dtype: float64

推荐阅读