xxxTenc 2021-05-05 23:54 采纳率: 71.4%
浏览 116
已结题

如何统计表中一行值为1的列(字段),并将其列名组合输出?

如上图,假设有这么一个类似的表,我想要知道表中字段值为1的字段,并将其列名组合输出。

目的是得知存在多少不同组合,并统计出不同组合出现的频数。

代码苦手是想用excel实现的,但实际上有上百个字段,数据量也不少,所以希望能用python解决。

急!!!希望能得到完整的代码解答!!!!

  • 写回答

4条回答 默认 最新

  • 关注
    #-*- coding:utf-8 -*-
    import pandas as pd
    
    df = pd.read_excel('xxx.xlsx') ##默认读取sheet = 0的
    print(df)
    columns = df.columns.values.tolist()[1:]
    dic = {}
    for idx, row in df.iterrows():
        tup = tuple(column for column in columns if row[column]==1)
        print(tup)
        dic[tup] = dic.get(tup,0) + 1
    
    li = sorted(dic.items(),key=lambda x: x[1],reverse=True)
    for ids, num in li:
        print("&".join(ids),"组合出现的频数是:",num)
    

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题