Pandas/Numpy:删除Pandas系列或Numpy数组的前导/尾nan



如果我有一个数组

a=array([nan, nan,  2.,  3.,  0., nan,  5., nan,  6.,  7.,  8., nan])

如何快速修剪到

array([2.,  3.,  0., nan,  5., nan,  6.,  7.,  8.])

注意中间的np.nan值保持不变。

试试这个,刚刚看到@ Joe Ferndz已经回答了

#series
a=pd.Series([np.nan, np.nan,  2.,  3.,  0., np.nan,  5., np.nan,  6.,  7.,  8., np.nan])
# Find out the first and last valid index and filter
a.loc[a.first_valid_index():a.last_valid_index()]

解决方案很长,但它有效:

newarray = []
start, end = 0, len(a)  
for x in range(len(a)):
if a[x] > 0 and start == 0: 
start = x
break
for x in range(len(a)):
if a[-x] > 0 and end == len(a): 
end = -x + 1
break
print(a[start:end])

最新更新