擅长:python、mysql、java
<p>没有内置的方法可以做到这一点,您必须为此编写自己的代码</p>
<pre><code>import pandas as pd
import numpy as np
s = pd.Series([0, np.nan, np.nan, 0, np.nan, np.nan, np.nan, 1, np.nan, 1, np.nan,
np.nan, np.nan, 1, np.nan, 0, np.nan, np.nan, 1, np.nan, np.nan, np.nan, 1])
vals = s.values.tolist()
look_left = [-1] * len(vals)
look_right = [-1] * len(vals)
for i in range(2):
check = vals if i == 0 else vals[::-1]
arr = look_left if i == 0 else look_right
prev_seen = None
for i, elem in enumerate(check):
if elem in [0, 1]:
arr[i] = elem
prev_seen = elem
else:
arr[i] = prev_seen
look_right = look_right[::-1]
for i in range(len(vals)):
if np.isnan(vals[i]):
vals[i] = 1 if look_right[i] == 1 and look_left[i] == 1 else 0
s = pd.Series(vals)
print(s)
</code></pre>