我有一个巨大的数据框,如下:
Na Col1 Col2 Col3 Col4
A 77 42 88
B 31 64
C 86 79 79 99
D 94 8 95
E 95 40 27
F 92 71 32
我想从每列中选择前2个,以创建以下内容:
Na Col1 Col2 Col3 Col4
A 88
C 79 79 99
D 94 95
E 95
F 92
除了遍历数据框的每一列并将其外部联接之外,我不确定如何处理此问题,但是我的原始数据框非常大。
答案 0 :(得分:3)
您似乎可以只在每一列中使用nlargest
,将n=2
设置为检索前2个项目。
df.set_index('Na').apply(pd.Series.nlargest, n=2)
Col1 Col2 Col3 Col4
A NaN NaN 88.0 NaN
C NaN 79.0 NaN 99.0
D NaN 94.0 88.0 95.0
E 95.0 NaN NaN NaN
F 92.0 NaN NaN NaN