2016-12-16 122 views
1

我有一个数据帧的熊猫与MultiIndexing大熊猫多指标数出现

(Index col 1) (Index col 2) (Data col 1) .... 
A    a   word1 
       a   word2 
       b   word3 
B    a   word4 
       c   word5 

现在我想指望所有具有2.我试过DF指数第1列和索引列的组合相同的行.value_counts(),它给出错误'DataFrame没有方法value_counts()。如果我使用df.count(),则只能计算level = 0或level = 1,但不能同时计数(即使我经常看到在stackoverflow上使用该级别参数似乎不接受列表) 。

所需的输出: A中的2 A B 1 ..等

[编辑]:可以这么@ EdChum的评论解决了这个问题,但我仍然不知道为什么其他的东西没有工作?具体来说:为什么value_counts似乎没有被定义,而它是最新熊猫的一部分?这与我使用Jupyter Notebook有什么关系吗?或者这些东西在Pandas版本之间有很大变化?

+0

尝试'df.groupby(level = [0,1])。size()' – EdChum

+0

@EdChum做到了,谢谢! – Celebrian

回答

1

您可以groupby感兴趣的指标,并呼吁size返回唯一值的计数:

In [4]: 
df.groupby(level=[0,1]).size() 

Out[4]: 
(Index col 1) (Index col 2) 
A    a    2 
       b    1 
B    a    1 
       c    1 
dtype: int64 

value_counts是一系列的方法,它不是一个DF这就是为什么它没有定义工作

+0

Ipython/Jupyter?或Spyder? – MYGz

+0

@MohammadYusufGhazi你对此有何评论? – EdChum

+0

In [4]和Out [4]表示法。 – MYGz