熊猫在groupby中放置重复项

时间:2018-11-09 03:14:57

标签: python pandas

这是我的csv外观,

name, cuisine, review
A, Chinese, this
A, Indian, is
B, Indian, an
B, Indian, example
B, French, thank
C, French, you

我试图计算不同种类的菜肴按名称出现的次数。这就是我应该得到的

Cuisine, Count
Chinese, 1
Indian, 2
French, 2

但是您可以看到名称中有重复项,例如B,所以我尝试drop_duplicates,但不能。我用

df.groupby('name')['cuisine'].drop_duplicates() 

它说系列分组对象不能。

以某种方式,我需要应用value_counts()来获取美食单词出现的次数,但重复的事情却受阻。知道我怎么能在大熊猫上得到这个吗?谢谢。

2 个答案:

答案 0 :(得分:2)

您正在寻找groupbynunique

df.groupby('cuisine', sort=False).name.nunique().to_frame('count')

         count
cuisine       
Chinese      1
Indian       2
French       2

将返回每个组的唯一项计数。

答案 1 :(得分:2)

使用crosstab

pd.crosstab(df.name,df.cuisine).ne(0).sum()
Out[550]: 
cuisine
 Chinese    1
 French     2
 Indian     2
dtype: int64