如何在熊猫数据框行中找到最后一个簇?

时间:2019-02-16 02:35:55

标签: python pandas python-2.7

如果我有一个这样的Pandas数据框:

     A   B   C   D   E   F   G   H   I   J
 1   1  NaN  1   1  NaN  1  NaN  1   1   1
 2  NaN NaN  1  NaN  1   1   1   1  NaN NaN
 3  NaN NaN NaN  1   1   1  NaN  1   1  NaN
 4   1   1   1   1  NaN NaN NaN  1   1  NaN

如何找到每行中最后一个值簇,以便获得如下所示的数据框:

     A   B   C   D   E   F   G   H   I   J
 1  NaN NaN NaN NaN NaN NaN NaN  1   1   1
 2  NaN NaN NaN NaN  1   1   1   1  NaN NaN
 3  NaN NaN NaN NaN NaN NaN NaN  1   1  NaN
 4  NaN NaN NaN NaN NaN NaN NaN  1   1  NaN

1 个答案:

答案 0 :(得分:3)

IIUC使用cumsum和布尔过滤器

s=df.isnull().cumsum(1)
df=df[s.eq(s[df.notnull()].max(1),axis=0)]
df
Out[17]: 
    A   B   C   D    E    F    G  H    I    J
1 NaN NaN NaN NaN  NaN  NaN  NaN  1  1.0  1.0
2 NaN NaN NaN NaN  1.0  1.0  1.0  1  NaN  NaN
3 NaN NaN NaN NaN  NaN  NaN  NaN  1  1.0  NaN
4 NaN NaN NaN NaN  NaN  NaN  NaN  1  1.0  NaN