我有下面的sql查询,必须将其转换为等效的pandas查询才能执行相同的操作。
从年龄= 12且性别=" M"的学生中选择COUNT(DISTINCT名称)
我尝试使用nunique(),但不知道如何结合条件。
答案 0 :(得分:2)
您可以使用查询或布尔索引,然后使用nunique
获取唯一项目的数量。
df.query('age == 12 & gender == "M"')['name'].nunique()
答案 1 :(得分:0)
有许多不同的答案。我喜欢尝试提供pandas
和numpy
面向的答案。我绝不暗示这些是 的答案,只是我的看法。
<强> numpy
强>
我的解决方案不规范!
a = df.age.values == 12
g = df.gender.values == 'M'
len(np.unique(df.name.values[a & g]))
<强> pandas
强>
我的解决方案不规范!
a = df.age.eq(12)
g = df.gender.eq('M')
df.name.loc[a & g].nunique()