Python pandas select 每列前 2 名
Python pandas select top 2 from each column
我有一个巨大的数据框:
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
我想select每列的前 2 个创建以下内容:
Na Col1 Col2 Col3 Col4
A 88
C 79 79 99
D 94 95
E 95
F 92
除了循环遍历数据框的每一列并在外部连接它们之外,我不确定如何处理这个问题,但我的原始数据框非常大。
看来您可以在每一列中使用 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
我有一个巨大的数据框:
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
我想select每列的前 2 个创建以下内容:
Na Col1 Col2 Col3 Col4
A 88
C 79 79 99
D 94 95
E 95
F 92
除了循环遍历数据框的每一列并在外部连接它们之外,我不确定如何处理这个问题,但我的原始数据框非常大。
看来您可以在每一列中使用 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