在pandas数据帧中获取nlargest时,有没有办法忽略具有NaN值的列?

时间:2016-05-19 03:54:36

标签: python pandas

在pandas数据帧中获取nlargest时,有没有办法忽略具有NaN值的列?如果我想要选择具有5个最大值的5个列标题,并且如果某些列具有NaN值,则忽略该列。如果具有有限值的列数小于5,则选择具有有限值(<5)的所有列标题。

1 个答案:

答案 0 :(得分:0)

nlargest将传递给方法的columns下降的n个顶行排序。如果有NaN值到达顶部,那么它将包括这些。如果您想忽略在排序的列中存在NaN值的行,请执行以下操作:

# assume a variable 'columns' exist that defines what columns to sort
# by.  You'll have to assign this yourself.  Also assign 'n' yourself.
df = df.dropna(subset=columns)
df = df.nlargest(n, columns=columns)