您可以使用字典理解来生成largest_n数据帧的每一行中的值.我转换了数据帧,然后应用于nlargest每个列.我曾经.index.tolist()提取过所需的top_n列.最后,我转换了这个结果,使数据帧恢复到所需的形状.
largest_n
nlargest
.index.tolist()
top_n
top_n = 2 >>> pd.DataFrame({n: df.T[col].nlargest(top_n).index.tolist() for n, col in enumerate(df.T)}).T 0 1 0 B C 1 A D