python - 分组数据,计算唯一值并将此值附加到行
问题描述
我正在尝试在每个 ID 的“组”中找到唯一数量的项目。因此,在下面的代码中,我试图为 id_match (101, 201, 26) 的每个值找到唯一的人口统计数据 (A, B, C) 数量。
tst = pd.DataFrame({'demographic' : ['A', 'B', 'B', 'A', 'C', 'C'],
'id_match' : ['101', '101', '201', '201', '26', '26']})
tst['num_unq'] = tst.groupby('demographic')['id_match'].nunique()
预期产出
demographic id_match num_unq
1 A 101 2
2 B 101 2
3 B 201 2
4 A 201 2
5 C 26 1
6 C 26 1
然而,我只是得到一列 NaN,而不是预期的输出。有谁知道为什么会发生这种情况以及另一种方法?
谢谢J
解决方案
使用变换:
tst = pd.DataFrame({'demographic' : ['A', 'B', 'B', 'A', 'C', 'C'],
'id_match' : ['101', '101', '201', '201', '26', '26']})
tst['num_unq'] = tst.groupby('demographic')['id_match'].transform('nunique')
print(tst)
输出
demographic id_match num_unq
0 A 101 2
1 B 101 2
2 B 201 2
3 A 201 2
4 C 26 1
5 C 26 1
推荐阅读
- oracle - 如何删除 Oracle 12c 中的隐藏列?
- facebook - WooCommerce 添加到卡片事件和 Facebook 像素
- groovy - 带有自定义 sslContext 的 Groovy HTTPBuilder
- arrays - Angular5比较2个(JSON)对象数组并在找到匹配时拼接
- android - 如何在导航控制器中使用共享元素转换
- angular - 从 Angular 4 应用程序中,我正在使用一个 API,它返回一个字符串,中间有 '\n'
- c# - 表单在后台时图片框不刷新(非焦点)
- r - R从环境中获取对象并提供给功能
- c - 将参数传递给不同文件中的函数(gcc)
- sql - SQL Server 根据不同的标志计算累积总和/条件运行总和