Python 如何为specifics列创建一个行数大于零的dataframe?

Python 如何为specifics列创建一个行数大于零的dataframe?,python,pandas,Python,Pandas,我有一个这样的数据帧 name skill_1 skill_2 john 2 0 james 0 1 我想为以“skill”开头的每一列计算零以上的行数 新数据帧的预期输出: skills count skill_1 1 skill_2 1 如何处理熊猫?您可以尝试: df.filter(like=“skill”).gt(0).sum(axis=0).to_帧(“count”) 为包含“skill” 将greaterthan0的条目标记为T

我有一个这样的数据帧

name  skill_1  skill_2
john  2        0
james 0        1
我想为以“skill”开头的每一列计算零以上的行数

新数据帧的预期输出:

skills   count
skill_1  1   
skill_2  1
如何处理熊猫?

您可以尝试:

df.filter(like=“skill”).gt(0).sum(axis=0).to_帧(“count”)
  • 为包含
    “skill”
  • g
    reater
    t
    han
    0
    的条目标记为
    True
    ,其他条目标记为
    False
  • 按行求和(
    axis=0
    ),其中
    True
    将被视为
    1
    False
    0
    ,以获得计数
  • 转换为
    数据
得到

         count
skill_1      1
skill_2      1

只需按
“skill”
列上的条件进行筛选:

作为pd进口熊猫

df = pd.DataFrame(columns=['name','skill_1','skill_2'],
                  data=[['john',2,0],
                   ['james',0,1]])

skill_cols = [x for x in df.columns if 'skill' in x]

subset_df = df[df[skill_cols] > 0][skill_cols]
column_count = subset_df.count()

这是一个非常好的解决方案!