如果我有一个像这样的 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
最佳答案
IIUC 使用带有 bool 过滤器的 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
关于python - 如何在 Pandas 数据框行中找到最后一个集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54719336/