python - Pandas 分组、过滤和聚合

标签 python pandas filter group-by aggregate

我有一个像这样的数据框

import pandas as pd
import numpy as np
d = {'id':[1,2,3,4,3,3,1,6], 'type':['t2','t1','t2','t2','t3','t3','t4','t3']}
df = pd.DataFrame(data=d)

目标是获取按 id 分组的数据帧,并且每个组的每种类型都有nunique

我以为这可以解决它,但它似乎不起作用:

df.groupby('id').agg({'type':pd.Series.nunique()})

最佳答案

您可以通过首先访问 type SeriesGroupBy 来更简单地完成此操作。

>>> df.groupby('id').type.nunique()
id
1    2
2    1
3    2
4    1
6    1
<小时/>

正如评论中提到的,您当前的方法不起作用 agg需要一个可以调用的函数对象 (nunique),而不是像 nunique() 那样的实际函数调用尝试。

关于python - Pandas 分组、过滤和聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42235756/

相关文章:

python-3.x - 两个数据帧中每个值的 bool 比较

elasticsearch - Elasticsearch筛选聚合结果(用于搜索和聚合)

python - 如何用Python制作一个像C++一样的计算器

python - 如何检查用户输入是否是字符串

python - 如何在Python中的(602x5)数据帧中进行双线性插值

Python Pandas - 将 groupby 函数的结果返回到父表

python - 为什么在使用 pandas apply 时会出现 AttributeError?

php - 如何过滤字符串中的多个限制词?

c# - 如何在 C# 中将位图图像转换为黑白图像?

python - API 使用 Falcon 框架调用另一个 API