擅长:python、mysql、java
<p>另一种可能不太复杂的方法是创建一个索引点列表,在该列表中您希望有nan(其中索引点不为空,但前面的索引点为空)。然后,您只需向前填充数据并使用创建的列表重新插入nan。</p>
<pre><code>import pandas as pd
import numpy as np
from numpy import nan as NA
df = pd.DataFrame([1, 2, np.nan, np.nan, np.nan, np.nan, 3, 4
, np.nan, np.nan, np.nan, 5], columns=['att1'])
#create list of index points where you want NaNs to be be
Nan_ind = [x - 1 for x in xrange(1, df.index[-1] + 1)
if pd.notnull(df.loc[x, 'att1'])
and pd.isnull(df.loc[x-1, 'att1'])]
#forward fillna
df['att1'] = df['att1'].fillna(method = 'ffill')
#reinsert NaNs using your list of index points
df.loc[Nan_ind, 'att1'] = NA
</code></pre>