代码之家  ›  专栏  ›  技术社区  ›  ASavage

将NaN值移到df的末尾[重复]

  •  0
  • ASavage  · 技术社区  · 3 年前

    我有一个数据帧,如:

         0    1    2
    0  0.0  1.0  2.0
    1  NaN  1.0  2.0
    2  NaN  NaN  2.0
    

    我想要的是

    Out[116]: 
         0    1    2
    0  0.0  1.0  2.0
    1  1.0  2.0  NaN
    2  2.0  NaN  NaN
    

    这是我目前的做法。

    df.apply(lambda x : (x[x.notnull()].values.tolist()+x[x.isnull()].values.tolist()),1)
    Out[117]: 
         0    1    2
    0  0.0  1.0  2.0
    1  1.0  2.0  NaN
    2  2.0  NaN  NaN
    

    有什么有效的方法来实现这一点吗? apply 这里有一个慢下来的方法。 谢谢你的助手!:)


    我的真实数据大小

    df.shape
    Out[117]: (54812040, 1522)
    
    0 回复  |  直到 6 年前