王jx5858 2021-08-15 22:28 采纳率: 80%
浏览 98
已结题

怎么求出部分列里最近200行和值不为0的最小值并返回对应的列名

计算m10到m500最近200行和值
img

img

img

要求是不为0的最小值返回输出列名
麻烦解决下

  • 写回答

5条回答 默认 最新

  • CSDN专家-HGJ 2021-08-16 00:41
    关注

    题主的问题描述不够清晰,可能想表达的意思是连续200行中一旦出现某列和值为0时,找出这些列的和值,并打印出和值为0的那一列名。
    如果是这样问题的话,下面写一段代码基本能实现这个需求::

    import pandas as pd 
    df=pd.read_csv('cs.csv')
    df=df.iloc[:,7:]
    print(df.head())
    for i in range(len(df)-200):
        df1=df.iloc[i:200+i,:]
        sums=df1.apply(sum,axis=0)
        if any(sums==0):
            print(sums)
            ind=sums[sums.values==0].index.tolist()
            if len(ind)==1:
                print(ind[0])
            else:
                print(ind)        
    

    根据题主要求,补充代码如下,供参考:

    import pandas as pd 
    df=pd.read_csv('cs.csv')
    df1=df.iloc[-200:,7:]
    v=min([x for x in df1.apply(sum,axis=0) if x!=0])
    for ind in df1.columns:
        if df1[ind].sum()==v:
            print(ind)
    #output:m180
    

    如对你有帮助,可点击本回答的右上方采纳按钮给予采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月24日
  • 已采纳回答 8月16日
  • 赞助了问题酬金 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错