我有一個數據幀,如:移NaN的各自列的底部
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)
能夠保證所有的NaN是位於鄰近的細胞? –
@cᴏʟᴅsᴘᴇᴇᴅ有時它會是1 NaN 2 NaN – Wen
難道你不是在將NaN移動到每個行的右側嗎? – Divakar