【发布时间】:2021-06-26 19:03:46
【问题描述】:
我有一个包含一组列的数据框,所有这些列都是布尔值。我想为每个列(以及相应的布尔值)获取另一列(ID 列)的唯一计数
例如:
data = [
["ABC", True, False],
["DEF", False, False],
["GHI", False, True],
]
df = pd.DataFrame(data, columns=["ID", "CONTAINS_Y", "CONTAINS_X"])
df.groupby("CONTAINS_Y")["ID"].nunique().reset_index()
产量:
CONTAINS_Y ID
False 2
True 1
我想要一个产生的命令:
CONTAINS_Y ID
False 2
True 1
CONTAINS_X ID
False 2
True 1
有没有办法对所有布尔列进行分组以获得唯一计数?还是必须单独完成?
还有其他类似的问题 (Pandas count(distinct) equivalent),但解决方案对我想要实现的目标不起作用。
【问题讨论】:
标签: pandas pandas-groupby aggregate