寻找NaN罢工

时间:2020-04-01 09:49:48

标签: python nan

我有一个数据框,其中某些列包含错误的信息。此错误信息始终位于较长的NaN值序列之前。假设我有以下数据集:

 $(document).ready(function(){ 
      $("#button1").click(function(){
        if($("#fname").val().length === 0)
          alert("Please enter firstname"); 
      });
    });

“ Obs1”没有错误信息,而“ Obs2”在4-NaN序列之前的值错误。有谁知道如何在时间序列中找到更长的序列(例如,出现4个NaN值),然后用NaN填充所有先前的条目?举个例子,我想要的输出将是:

import pandas as pd 
from numpy import nan

d = {'Obs1': [1, 2, 3, 4, 5, 6, 7, 8], 'Obs2': [0.1, 0.1, nan, nan, nan, nan, 100, 101]}
df = pd.DataFrame(data=d)

预先感谢

1 个答案:

答案 0 :(得分:1)

对于每一列,检查第i个元素和第(i + 1)个元素为NaN并找到满足第i个元素和第(i + 1)个元素的最大索引为NaN。< / p>

请参阅以下代码。

for col in df.columns:
    cond = df[col].iloc[1:].isnull() + df[col].iloc[:-1].isnull() == 2
    if sum(cond) >= 2:    
        df[col].iloc[:cond.index[-1] - 1] = nan