Python 在设定的时间范围内填写NaN

Python 在设定的时间范围内填写NaN,python,pandas,Python,Pandas,我需要Python的帮助来: 循环遍历我的数据集,在column color中找到第一个非NaN值,并将该值存储为Base_color 我希望仅当这些值为NaN时,才使用基色填充基色后5秒范围内的所有NaN值 如果它在5秒内选择了一种新颜色,我想将该颜色存储为基本颜色,并在5秒内用新找到的基本颜色替换新找到的基本颜色之后的所有NaN 这是我的数据集的一个示例: Name Color Emotion Time Bob NA angry 2018-11-20 16:14:31

我需要Python的帮助来:

  • 循环遍历我的数据集,在column color中找到第一个非NaN值,并将该值存储为Base_color
  • 我希望仅当这些值为NaN时,才使用基色填充基色后5秒范围内的所有NaN值
  • 如果它在5秒内选择了一种新颜色,我想将该颜色存储为基本颜色,并在5秒内用新找到的基本颜色替换新找到的基本颜色之后的所有NaN
  • 这是我的数据集的一个示例:

     Name Color Emotion  Time
     Bob  NA    angry    2018-11-20 16:14:31
    
     Bob  NA    angry    2018-11-20 16:14:31
    
     Bob  red   sad      2018-11-20 16:14:31
    
     Bob  red   neutral  2018-11-20 16:14:31
    
     Bob  blue  sad      2018-11-20 16:14:32
    
     Bob  red   sad      2018-11-20 16:14:32
    
     Bob  NA    neutral  2018-11-20 16:14:33
    
     Bob  NA    neutral  2018-11-20 16:14:33
    
     Bob  NA    sad      2018-11-20 16:14:34
    
     Bob  blue  fear     2018-11-20 16:14:35
    

    请帮助:)谢谢找到第一个有效的颜色使用:

    valid_index = df['Color'].first_valid_index()
    base_color = df['Color'][valid_index]
    
    对于您的问题2和3:

    for index, row in df.iterrows():
        if ((row['Time'] - df['Time'][valid_index]).dt.seconds < 5):
            if row['Color'] == np.nan:
                row['Color'] = base_color
            else:
                base_color = row['Color']
                valid_index = index
    
    对于索引,df.iterrows()中的行:
    如果((行['Time']-df['Time'][valid_index]).dt.seconds<5):
    如果行['Color']==np.nan:
    行['Color']=基本颜色
    其他:
    基本颜色=行['color']
    有效索引=索引
    
    请不要共享代码或数据的图像,共享您的数据帧样本而不是共享代码,这样我们可以复制您的数据集并帮助您找到解决方案。@AlexandreNixon我已经更改了它,谢谢advise@MohitMotwani我真的不知道从哪里开始写代码,我知道我必须实现什么,但我需要代码方面的帮助