python - 如何为特定列创建一个行数大于零的数据框?
问题描述
我有一个这样的数据框
name skill_1 skill_2
john 2 0
james 0 1
对于以“技能”开头的每一列,我希望将上面的行计数为零。
新数据框的预期输出:
skills count
skill_1 1
skill_2 1
我怎么能用 Pandas 做到这一点?
解决方案
你可以试试:
df.filter(like="skill").gt(0).sum(axis=0).to_frame("count")
filter
对于包含的列"skill"
- 将那些是
g
reatert
han0
asTrue
和其他的条目标记为False
- 逐行求和 (
axis=0
) whereTrue
将被视为1
并False
0
获得计数 - 转换
to
数据frame
要得到
count
skill_1 1
skill_2 1
推荐阅读
- python - 在 groupby 之后迭代 sum 的正确方法是什么
- sympy - Sympy 奇怪的求和解释
- laravel - 使用不同类型的响应为两者(Web 和 API)编写相同代码的最佳方法?
- python-3.x - 从右到左计算反向累积积
- xampp - Xampp 虚拟主机页面“不安全”
- apache - OAuth GConnect KeyError:'name' with Python on Ubuntu + apache on Amazon Lightsail
- java - 创建定义名称为“entityManagerFactory”的 bean 时出错
- arrays - 练习面试题在array[j] >= array[i]的条件下要求max ji;不明白解决办法
- android - 如何在错误结果上打破 RxJava 链?
- linux - 在 linux 上从 dotnet core 调用 matlab 共享库