整个 Pandas DF 中最小 n 值的索引
Indices of smallest n values over whole Pandas DF
我正在寻找一种有效的方法来提取整个数据帧中 n 个最小值的索引。
例如,给定以下 n = 2 的 df:
colA colB colC
r1 33 75 22
r2 1 52 95
r3 71 7 68
我想以某种形式获得与整个 df 中的 2 个最小值相对应的索引 [(r2, colA), (r3, colB)]:1 和 7。
索引之间的顺序并不重要(对应的值可能没有排序)。
谢谢!
nsmallest -
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.nsmallest.html
import pandas as pd
df=pd.DataFrame({"colA":[33,1,71],"colB":[75,52,7],"colC":[22,95,68]})
df.apply(pd.Series.nsmallest, axis=1, n=1)
df.apply(pd.Series.nsmallest, axis=1, n=2)
除了Neo的回答,同时,我找到了以下解决方案:
n=2
list(df.stack().sort_values().head(n).index)
df.min
import pandas as pd
df=pd.DataFrame({"colA":[33,1,71],"colB":[75,52,7],"colC":[22,95,68]})
#The min value for each numerical column in the dataframe
df.min(numeric_only=True)
#The minimum value in the entire dataframe
df.min(numeric_only=True).min()
我正在寻找一种有效的方法来提取整个数据帧中 n 个最小值的索引。
例如,给定以下 n = 2 的 df:
colA colB colC
r1 33 75 22
r2 1 52 95
r3 71 7 68
我想以某种形式获得与整个 df 中的 2 个最小值相对应的索引 [(r2, colA), (r3, colB)]:1 和 7。
索引之间的顺序并不重要(对应的值可能没有排序)。
谢谢!
nsmallest -
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.nsmallest.html
import pandas as pd
df=pd.DataFrame({"colA":[33,1,71],"colB":[75,52,7],"colC":[22,95,68]})
df.apply(pd.Series.nsmallest, axis=1, n=1)
df.apply(pd.Series.nsmallest, axis=1, n=2)
除了Neo的回答,同时,我找到了以下解决方案:
n=2
list(df.stack().sort_values().head(n).index)
df.min
import pandas as pd
df=pd.DataFrame({"colA":[33,1,71],"colB":[75,52,7],"colC":[22,95,68]})
#The min value for each numerical column in the dataframe
df.min(numeric_only=True)
#The minimum value in the entire dataframe
df.min(numeric_only=True).min()