如何通过分组索引访问 pandas groupby 数据框?

Posted

技术标签:

【中文标题】如何通过分组索引访问 pandas groupby 数据框?【英文标题】:How do I access a pandas groupby dataframe by grouped index? 【发布时间】:2018-12-09 23:31:57 【问题描述】:

按照this example我可以创建一个简单的数据框和groupby

import pandas as pd

# Create a sample data frame
df = pd.DataFrame('A': ['foo', 'foo', 'foo', 'bar', 'bar'],
                   'B': range(5), 'C': range(5))

# group by 'A' and sum 'B'
gf = df.groupby('A').agg('B': 'sum')

结果是分组的数据帧 gf

    B
A   
bar 7
foo 3

我想通过分组索引访问 gf。比如……

gf['foo'] returns 3 
gf['bar'] returns 7

我还想按分组索引进行绘图。比如……

gf.plot('A', 'B') such that  x=['foo','bar'], y=[3,7]

【问题讨论】:

【参考方案1】:

怎么样:

import matplotlib.pyplot as plt

for k in gf['B'].index:
    print ": ".format(k, gf['B'].loc[k])

plt.bar(gf['B'].index, map(lambda i: gf['B'].loc[i], gf['B'].index))
plt.show()

【讨论】:

【参考方案2】:
gf.reset_index(level=0, inplace=True)

gf[gf.A == 'bar']

返回:

     A  B
0  bar  7

剧情:

import matplotlib.pyplot as plt

plt.bar(gf.A, gf.B)

【讨论】:

以上是关于如何通过分组索引访问 pandas groupby 数据框?的主要内容,如果未能解决你的问题,请参考以下文章

第十三节:pandas之groupby()分组

pandas数据分组

pandas使用groupby函数基于指定分组变量对dataframe数据进行分组使用groups属性获取每个分组的样本对应的在原dataframe中的行索引位置列表

pandas入门

Pandas-分组函数和分层索引的展开

如何使用 Groupby 将 Pandas TA 应用于数据框