2017-02-22 35 views
3

在给定的熊猫数据框中,我需要计算列y中每个项目的唯一项目数。我想出了计数器中的计数方法,但他们似乎不能正常工作。什么我试图实例来管理:熊猫:对于列中的每个项目,计算另一个给定列中不同项目的数量

df = pd.DataFrame([[a, 2], [a, 1], [c, 4], [a, 1], [c, 4]]), columns=list('AB')) 

它创建了以下数据框:

A B 
0 a 2 
1 a 1 
2 c 4 
3 a 1 
4 c 4 

现在我想要的输出应该是:

a:2 
c:1 
+0

如果我或另一种答案是有帮助的,不要忘了[接受](http://meta.stackexchange.com/a/5235/295067)它。谢谢。 – jezrael

回答

3

您需要groupbySeriesGroupBy.nunique和最后to_dict

print (df.groupby('A').B.nunique()) 
A 
a 2 
c 1 
Name: B, dtype: int64 

print (df.groupby('A').B.nunique().to_dict()) 
{'a': 2, 'c': 1} 
+0

@piRSquared - 是的,它也很好。顺便说一句,你好吗?忙? – jezrael

+0

我觉得大熊猫越来越受欢迎,许多新的答案来了,什么是超级;) – jezrael

+0

我认为这太棒了!我希望我们的工作能够帮助更多的人为此感到兴奋。你比其他人回答更多的熊猫问题。只有你和EdChum回答比我多。 – piRSquared

相关问题