熊猫最大数量的位置

时间:2019-11-05 14:15:12

标签: pandas dataframe data-science

我有一个pandas数据框,我想检索该数据框中最大值的位置(行,列)。我该怎么办?

1 个答案:

答案 0 :(得分:0)

示例:

df = pd.DataFrame({

         'B':[4,5,4,5,5,4],
         'C':[7,8,9,4,2,3],
         'D':[1,3,5,7,1,0],
         'E':[5,3,6,9,2,4],

})

首先,必要时仅获取DataFrame.select_dtypes的数字:

df = df.select_dtypes(np.number)

要在DataFrame中返回第一个最大值,请使用DataFrame.stackSeries.idxmax

print (df.stack().idxmax())
(2, 'C')

如果性能很重要,则可以通过将最大值与numpy.where进行比较来获取索引,并通过索引来获取第一值:

r, c = np.where(df == df.values.max())
print ((df.index[r[0]], df.columns[c[0]]))
(2, 'C')

如果需要所有最大值:

s = df.stack()
print (s.index[s == s.max()].tolist())
[(2, 'C'), (3, 'E')

print (list(zip(df.index[r], df.columns[c])))
[(2, 'C'), (3, 'E')]