ValueError:错误的项目数通过 5,位置意味着 1,在连续找到第二个最大值时出错

Posted

技术标签:

【中文标题】ValueError:错误的项目数通过 5,位置意味着 1,在连续找到第二个最大值时出错【英文标题】:ValueError: Wrong number of items passed 5, placement implies 1, error while finding the second max value in a row 【发布时间】:2022-01-13 17:40:36 【问题描述】:

获取数据框中每一行的第二个最大值,但得到值错误

column = [col for col in dataframe.columns if '%' in col]

dataframe["Max_2nd"] = dataframe[column].apply(lambda row: row.nlargest(2).values[-1],axis=1)

我该如何解决这个问题

【问题讨论】:

【参考方案1】:

所以,给定以下玩具数据框:

import pandas as pd

df = pd.DataFrame(
    (
        
            "col1": [1, 2, 3, 4, 5, 6, 7, 8],
            "col2": [3, 0, 1, 3, 0, 1, 8, 5],
            "col3": [7, 9, 2, 6, 7, 8, 0, 1],
            "col4": [0, 4, 5, 0, 4, 3, 4, 0],
        
    )
)

您可以像这样在每一行中找到第二个最大值:

df["Max_2nd"] = df.apply(lambda x: sorted(x, reverse=True)[1], axis=1)

print(df)
# Outputs
   col1  col2  col3  col4  Max_2nd
0     1     3     7     0        3
1     2     0     9     4        4
2     3     1     2     5        3
3     4     3     6     0        4
4     5     0     7     4        5
5     6     1     8     3        6
6     7     8     0     4        7
7     8     5     1     0        5

【讨论】:

以上是关于ValueError:错误的项目数通过 5,位置意味着 1,在连续找到第二个最大值时出错的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:错误的项目数通过 47,位置意味着 1 和 KeyError:'size'

ValueError:错误的项目数通过 500,位置暗示 1,Python 和 Pandas

错误 **ValueError: 传递的项目数错误 2,位置暗示 1**

ValueError:传递的项目数错误 1,位置暗示 2

Pandas DataFrame ValueError:传递的项目数错误 2,位置暗示 1

值错误:通过的项目数错误 2,位置暗示 1