如果我有这样的Pandas Data Frame:0 1 5 7 3 7 1 9 2 NaN 4 3 NaN 3 21 1 3 2 8 4 2 NaN 2 NaN 3 1 0 4 12 1 5 1 NaN 7 3 2 1 3 5 0 NaN 2 13 1 4 5 3 1 2 NaN 1 3 1 2 NaN 2 1如何找到每行中的最后五个连续值?如下所示:3 7 1 9 23 1 0 4 12 1 3 5 04 5 3 1 2
1 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
让我们尝试一下:
df.T.apply(lambda x: x[x.groupby(x.isnull().cumsum()).transform('count')>4].dropna().tail(5).values).T
0 1 2 3 4
0 3.0 7.0 1.0 9.0 2.0
1 3.0 1.0 0.0 4.0 1.0
2 2.0 1.0 3.0 5.0 0.0
3 4.0 5.0 3.0 1.0 2.0
或者
df.apply(lambda x: pd.Series(x[x.groupby(x.isnull().cumsum()).transform('count')>4].dropna().tail(5).values), axis=1)
输出:
0 1 2 3 4
0 3.0 7.0 1.0 9.0 2.0
1 3.0 1.0 0.0 4.0 1.0
2 2.0 1.0 3.0 5.0 0.0
3 4.0 5.0 3.0 1.0 2.0
添加回答
举报
0/150
提交
取消