【问题标题】:How to find Value at specific index in an array in a dataframe?如何在数据框中的数组中的特定索引处查找值?
【发布时间】:2022-01-17 02:51:06
【问题描述】:

我有一个包含SRiSAi 列的数据框。每行代表一个不同的位置,这些列包含每个位置的SRiSAi 数组。我想找到SAi的最大值的索引,然后为该索引找到SRi的对应值w。这是我的数据框的屏幕截图,名为AvgT

我可以使用以下循环找到每个位置(行)的最大值SAi 的索引,但在SRi 的同一索引处找不到对应的值。我收到错误“IndexError:索引超出范围”。我认为我所写的是在SRi 的索引处查找值,而不是在SRi 中的每个数组的索引处。我该如何解决这个问题,以便在每个位置的 SRi 中找到每个数组的索引?

MaxSA=[]
for index, row in AvgT.iterrows():
    maxsa=np.argmax(AvgT.SAi[index])
    w=AvgT.SRi[maxsa]
    MaxSA.append(maxsa)

【问题讨论】:

    标签: python pandas dataframe numpy


    【解决方案1】:

    这条线没有做你认为它正在做的事情:

        w=AvgT.SRi[maxsa]
    

    您正在访问数据框的 maxsa 行中的 SRi 的值——也就是说,您正在获取整个列表。我假设您收到 IndexError,因为至少在一个实例中,SAi 的 argmax 高于数据框中的行数。

    尝试用以下代码替换该行:

        w=AvgT.SRi[index][maxsa]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多