熊猫在 groupby 中删除重复项 [重复]

Posted

技术标签:

【中文标题】熊猫在 groupby 中删除重复项 [重复]【英文标题】:Pandas drop duplicates within groupby [duplicate] 【发布时间】:2019-04-12 15:30:42 【问题描述】:

这是我的 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() 

它说系列 groupby 对象不能。

不知何故,我需要应用 value_counts() 来获取美食词的出现次数,但重复的事情阻碍了。知道如何在熊猫中得到这个吗?谢谢。

【问题讨论】:

【参考方案1】:

您正在寻找groupbynunique

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

         count
cuisine       
Chinese      1
Indian       2
French       2

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

【讨论】:

【参考方案2】:

使用crosstab

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

【讨论】:

以上是关于熊猫在 groupby 中删除重复项 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫时间序列数据框中删除重复项

Spark DataFrame通过GroupBy删除重复项保持第一

如何在使用 itertools.groupby 删除重复项时包含每个字符的计数

如何在熊猫数据框中找到重复项? [复制]

使用laravel从大表中删除重复项[关闭]

Oracle删除重复记录只保留一条数据的几种方法