开发者社区 问答 正文

dataframe中如何创建包含每行第二大值的列?

dataframe中如何创建包含每行第二大值的列?

展开
收起
游客y244y7ln2rlpa 2021-12-05 20:32:49 429 分享 版权
1 条回答
写回答
取消 提交回答
  • df = pd.DataFrame(np.random.randint(1,100, 9).reshape(3, -1))
    print(df)
    # 行方向上取第二大的值组成series
    out = df.apply(lambda x: x.sort_values().unique()[-2], axis=1)
    # 构建dataframe新的列
    df['penultimate'] = out
    print(df)
    
    #>	    0   1   2
    	0  28  77   1
    	1  43  19  69
    	2  29  30  72
    
    #>	    0   1   2  penultimate
    	0  28  77   1           28
    	1  43  19  69           43
    	2  29  30  72           30
    
    
    2021-12-05 22:22:58
    赞同 展开评论
问答地址: