lmw0320 2019-05-10 19:56 采纳率: 75%
浏览 4781
已采纳

pandas如何简单实现excel中的countif函数?

图片说明

如图所示,我需要统计每行中比指标值大的列的个数。。excel很容易用countif函数来计数。。
但是我用pandas死活搞不出结果来。。
我的代码是:
np.where(data[data.columns[1:]]> data['指标']).count(1) ---结果都是0
用:
(data[data.columns[1:]]> data['指标']).sum() ---结果也是0

求指点迷津

  • 写回答

1条回答 默认 最新

  • waple_0820 博客专家认证 2019-05-11 14:40
    关注
    import pandas as pd
    
    base = [3,3,4,3,1,3,3,3,5,2,3,3,3,3]
    x_1 = [4,4,4,4,2,1,4,3,4,3,4,4,2,4]
    x_2 = [5,3,4,4,2,4,5,1,4,4,1,3,5,1]
    x_3 = [5,2,4,1,1,5,4,3,2,3,3,4,2,4]
    x_4 = [3,2,3,5,1,3,3,5,4,2,5,5,5,5]
    
    df = pd.DataFrame({'指标':base, 'X1':x_1, 'X2':x_2, 'X3':x_3, 'X4':x_4})
    #print(df)
    
    ############### 上面为生成图示数据 #####################
    
    #count_if函数
    def countif(line, base, count_column):
        line['cnt_if'] = sum(line[count_column] > line[base])
        return line
    
    #将count_if应用到每一行
    new_df = df.apply(countif, axis=1, args=('指标',['X1', 'X2', 'X3', 'X4'], ))
    print(new_df)
    

    最后结果:
    solution

    不知道是不是你要的答案。

    一点分析写在博客里了。博客地址

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘