python - 在 Pandas 中按条件返回常用列
问题描述
我目前有两行如下所示的数据框:
user_id movieA movieB movieC movieD
512A 0.0 1.0 2.0 1.0
AB72 1.0 2.0 0.0 3.0
我想返回一个列表,该列表代表两个用户都对上面的电影评分的列0.0
。即对于上面的示例,我理想情况下会得到一个看起来像[movieB, movieD]
.
这甚至可能吗?我查看了此处可用的功能,但我不确定如何将它们组合起来以获得此结果。
解决方案
df = df.set_index("user_id")
df.columns[df.gt(0).all(axis=0)].tolist()
我们首先将user_id
索引设置为具有清晰的符号,即不必键入df.iloc[:, 1:]
而不是df
在另一行上。然后我们检查数据框的值在哪里大于 0 ( gt(0)
),然后检查哪些列的条目都大于 0 ( all(axis=0)
)。然后我们使用它作为 df 列的掩码,最后转换它tolist
。
推荐阅读
- css - 你如何处理 BEM 的孙子?
- node.js - 缩小无头木偶截图的大小
- google-chrome-extension - 如何在 chrome 扩展的内容脚本中包含 socket.io 的客户端
- flutter - 如何使用 FutureBuilder 显示图像?
- python - 是否可以在 Django 中创建更新的新闻源
- javascript - Select2 错误无法读取未定义的属性“getAttribute”
- python - 有没有为此的Python函数?
- string - 尝试使用 DataLoader 类将字符串列表转换为整数列表,但它一直说整数列表为空?
- spring - 使用非反应性 ServerResponse 下载 Spring 文件
- python - Django:计数相关模型,其中相关注释具有特定值并将计数存储在注释中(或简单地说:计数子查询)