gpt4 book ai didi

python - 如何在 Pandas 数据框行中检测到第一个非 nan 值之后找到前 5 个值(包括 nans)?

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:58 25 4
gpt4 key购买 nike

如果我有一个像这样的 Pandas DataFrame:

     0   1   2    3    4    5    6    7
A NaN NaN NaN 1 2 5 6 2
B NaN NaN NaN 2 NaN 1 NaN 3
C 5 4 3 2 1 5 9 1
D 6 2 NaN 5 1 3 5 NaN
E NaN NaN 6 2 1 3 5 1

如何找到非 NaN 值后的前五个值,以便获得如下 Pandas 数据框:

     0    1    2    3    4    
A 1 2 5 6 2
B 2 NaN 1 NaN 3
C 5 4 3 2 1
D 6 2 NaN 5 1
E 6 2 1 3 5

最佳答案

这是使用idxmaxall 的一种方法

df.loc[:,df.notnull().all().idxmax():]
3 4 5 6 7
A 1 2.0 5 6.0 2.0
B 2 NaN 1 NaN 3.0
C 2 1.0 5 9.0 1.0
D 5 1.0 3 5.0 NaN
E 2 1.0 3 5.0 1.0

更新

pd.DataFrame([df.iloc[i,x:].tolist() for i,x in enumerate(df.notnull().idxmax(1))]).iloc[:,:5]
0 1 2 3 4
0 1.0 2.0 5.0 6.0 2.0
1 2.0 NaN 1.0 NaN 3.0
2 5.0 4.0 3.0 2.0 1.0
3 6.0 2.0 NaN 5.0 1.0
4 6.0 2.0 1.0 3.0 5.0

关于python - 如何在 Pandas 数据框行中检测到第一个非 nan 值之后找到前 5 个值(包括 nans)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57565464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com