猿问

获取整个 Pandas DataFrame 中具有最小值的行和列

问题很简单,所以必须解决,但我找不到它。


我想找到 Pandas DataFrame 中的哪一行和哪一列具有最小值以及它是多少。


我尝试了以下代码(除了各种组合):


df = pd.DataFrame(data=[[4,5,6],[2,1,3],[7,0,5],[2,5,3]], 

                 index = ['R1','R2','R3','R4'], 

                 columns=['C1','C2','C3'])


print(df)


print(df.loc[df.idxmin(axis=0), df.idxmin(axis=1)])

正在搜索的数据框 (df) 是:


    C1  C2  C3

R1   4   5   6

R2   2   1   3

R3   7   0   5

R4   2   5   3

loc命令的输出:


    C1  C2  C2  C1

R2   2   1   1   2

R3   7   0   0   7

R2   2   1   1   2

我需要的是:


    C2

R3   0

我怎样才能得到这个简单的结果?


米琪卡哇伊
浏览 984回答 3
3回答

aluckdog

我会这样得到索引:np.unravel_index(np.argmin(df.values), df.shape)这比df.stack().idxmin().它为您提供了一个元组,例如(2, 1)在您的示例中。将其传递给 df.iloc[] 以获取值。

翻过高山走不出你

或min+ min+ dropna+ T+ dropna+ T:>>> df[df==df.min(axis=1).min()].dropna(how='all').T.dropna().T     C2R3  0.0>>> 
随时随地看视频慕课网APP

相关分类

Python
我要回答