索引器:Python升级后布尔数组不再匹配

索引器:Python升级后布尔数组不再匹配,python,pandas,indexing,Python,Pandas,Indexing,我的代码在for循环中运行 对于循环的每次迭代,我都会找到数据帧中该行的最大值,然后在该值出现的位置创建一个列索引列表(因为它有时可能会出现多次),最后取该列表的max()为包含最大值的行提供最高的列索引 我使用的代码如下所示: index = 0 for i in df['column']: maxValue = df.values[index, :].max() peaklist = df.index[df.values[index, :] == maxValue].toli

我的代码在for循环中运行

对于循环的每次迭代,我都会找到数据帧中该行的最大值,然后在该值出现的位置创建一个列索引列表(因为它有时可能会出现多次),最后取该列表的max()为包含最大值的行提供最高的列索引

我使用的代码如下所示:

index = 0
for i in df['column']:
    maxValue = df.values[index, :].max()
    peaklist = df.index[df.values[index, :] == maxValue].tolist()
    lastpeak = max(peaklist)
    index += 1
更新Python之后(我想这就是原因),我的“peaklist”创建现在失败了,索引器说“布尔索引与沿维度0的索引数组不匹配;维度是“x”,但对应的布尔维度是“y”

我在论坛上看过其他类似的例子,似乎找不到一个简单的单行解决方案来重写我的代码,并得到与以前相同的结果。有人能帮忙吗

编辑

数据帧示例:

0      1      2      3      4      5      6      7

a     100    200    200    150    100    125    200
b
c
d
e

对于本例中的第一次迭代,“maxValue”将等于200,创建的“peaklist”将为[2,3,7],而“lastpeak”将等于7。

找到了一个解决方案,显然numpy元组方法是有效的:

peaklist = np.where(df.values[index, :] == maxValue)
lastpeak = max(max(peak))

我将把这个问题留待几天,希望有人能找到更好的方法或解释问题的实质。

不确定你想要的结果是什么-你能分享一个例子
df
,最好是文本形式,以及预期的结果吗?当然,请参阅更新后的帖子。我缺少的输出是“peaklist”-它只是一个包含列索引的列表,其中的索引用于可以找到该行最大值的列。