为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

胡说叔叔 2021-03-29 18:06:24
我有许多具有以下结构的数据框。    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。我有什么选择?
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

没那么难。您可以使用Series.last_valid_index和切片来做到这一点:


# get index of last valid non-null value in 10101

idx = 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  20203

1    43827       NaN       NaN   NaN       NaN    NaN

2    43828       NaN  20:00:00   NaN       NaN    NaN

3    43829       NaN       NaN   NaN  20:35:00    NaN

4    43830  20:45:00       NaN   NaN       NaN    NaN


查看完整回答
反对 回复 2021-04-09
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号