根据该行中的值以及前面的一些行来抓取熊猫数据框的一行

我有许多具有以下结构的数据框。


    TRCODEP     10101     10201     20101     20201 20203

    43826     4:00:00       NaN       NaN       NaN   NaN

    43827         NaN       NaN       NaN       NaN   NaN

    43828         NaN  20:00:00       NaN       NaN   NaN

    43829         NaN       NaN       NaN  20:35:00   NaN

    43830    20:45:00       NaN       NaN       NaN   NaN

    43829         NaN       NaN  02:00:00       NaN   NaN

对于每个数据框,我想创建一个新的数据框,以选择该列中具有非NaN条目的10101行以及前三行。我遇到了麻烦,因为您可能会在10101上面看到多个非NaN条目。而且,即使解决了这个问题,我似乎也无法使用df['10101'].notna().index[0]and来分割数据帧df['10101'].notna().index[0]-3。


我有什么选择?


胡说叔叔
浏览 206回答 1
1回答

慕工程0101907

没那么难。您可以使用Series.last_valid_index和切片来做到这一点:# get index of last valid non-null value in 10101idx = df.index.get_loc(df['10101'].last_valid_index())# slice rows (with some minor bounds checking)df.iloc[max(0, idx - 3):idx + 1]   TRCODEP     10101     10201 20101     20201  202031    43827       NaN       NaN   NaN       NaN    NaN2    43828       NaN  20:00:00   NaN       NaN    NaN3    43829       NaN       NaN   NaN  20:35:00    NaN4    43830  20:45:00       NaN   NaN       NaN    NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python