【问题标题】:Pandas/Numpy: remove leading/trailing nan in a pandas series or numpy array [duplicate]Pandas/Numpy:删除 pandas 系列或 numpy 数组中的前导/尾随 nan [重复]
【发布时间】:2021-05-28 09:41:10
【问题描述】:

如果我有一个数组

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 值保持不变。

【问题讨论】:

  • first_idx = df.first_valid_index(); last_idx = df.last_valid_index(); df.loc[first_idx:last_idx]

标签: python pandas numpy


【解决方案1】:

试试这个,刚刚看到@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()]

【讨论】:

    【解决方案2】:

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

    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])
    

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 2016-05-26
      • 2019-01-19
      • 2015-05-21
      • 2019-05-05
      • 2018-03-04
      • 2019-07-05
      • 2023-02-13
      • 2019-02-25
      相关资源
      最近更新 更多