pandas - 结合 nunique 和 where in pandas
问题描述
我试图为每个 id 找到:等于 0.0 且大于 0.0 的值的数量
输入 DF:
ID . value
1 . 0.0
1 . 10.0
1 . 30.0
1 . 0.0
1 . 25.0
2 . 0.0
2 . 4.0
2 . 0.0
2 . 13.0
输出DF:
id . count (value = 0.0) . count(value > 0.0)
1 2 3
2 . 2 2
代码:
df.groupby("ID")["value"].nunique()
它只返回每个 ID 的唯一值的数量,我不知道如何在该命令中组合这个 if-else of (0.0 and value>0.0)。请有任何建议
解决方案
你可以做
pd.crosstab(df.ID,df.value.gt(0))
Out[392]:
value False True
ID
1 2 3
2 2 2
推荐阅读
- sql - T-SQL 为每个客户分配 10,000 张发票
- html - 如何让浏览器窗口和 div 之间的空隙消失?
- jmeter - Jmeter:在 Windows 中运行的测试计划在 Centos 中失败
- hive - Hive 导出到 AVRO,架构中没有列名
- java - 错误消息:java.lang.IllegalArgumentException
- html - 来自 UNIX 的电子邮件更改特定变量的颜色
- python - 重新分区 Dask DataFrame 以获得均匀的分区
- http-status-code-404 - 如何修复 Web 设置向导重定向到 Magento CE 2.2.5/2.2.6 中未找到的 404?
- android - 为 kiosk 应用程序永久响应本机 android 隐藏或禁用键盘
- validation - JSF 支持方法和表单验证