通过列的值有效地对Pandas DataFrame的行进行分组?

时间:2015-01-26 16:34:21

标签: python pandas

我有一个Pandas DataFrame df,有两列ABA也是索引。

B的允许值范围非常小(在我的例子中,B是一个布尔值)。如何快速回答查询:" dfB的值为x的所有行?"

例如,"哪些df行的B值为True?"

对于我的特定用例,因为只有两列,只需将A列中的值分组就足够了,即" A的值具有相应的值B的值x?"。

1 个答案:

答案 0 :(得分:1)

以下是使用http://www.gregreda.com/2013/10/26/intro-to-pandas-data-structures/的示例,我建议您阅读该教程以及pandas文档。

>>> data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],
...         'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions', 'Lions', 'Lions'],
...         'wins': [11, 8, 10, 15, 11, 6, 10, 4],
...         'losses': [5, 8, 6, 1, 5, 10, 6, 12]}
>>> football = pd.DataFrame(data, columns=['year', 'team', 'wins', 'losses'])
>>> football
   year     team  wins  losses
0  2010    Bears    11       5
1  2011    Bears     8       8
2  2012    Bears    10       6
3  2011  Packers    15       1
4  2012  Packers    11       5
5  2010    Lions     6      10
6  2011    Lions    10       6
7  2012    Lions     4      12

这是你想要做的:

>>> football[football['team'] == 'Lions']
   year   team  wins  losses
5  2010  Lions     6      10
6  2011  Lions    10       6
7  2012  Lions     4      12

[3 rows x 4 columns]

在您的情况下,您需要替换这些列标题并执行您想要从数据框中获取的内容。

df[df['B'] = True]

我给出了上面的例子,这样你就可以更加熟悉这个操作并玩弄它来获得一个好主意。