Remove NaN from pandas series

前端 未结 3 1409
抹茶落季
抹茶落季 2020-11-29 05:05

Is there a way to remove a NaN values from a panda series? I have a series that may or may not have some NaN values in it, and I\'d like to return a copy of the series with

相关标签:
3条回答
  • 2020-11-29 05:20

    A small usage of np.nan ! = np.nan

    s[s==s]
    Out[953]: 
    0    1.0
    1    2.0
    2    3.0
    3    4.0
    5    5.0
    dtype: float64
    

    More Info

    np.nan == np.nan
    Out[954]: False
    
    0 讨论(0)
  • 2020-11-29 05:24

    If you have a pandas serie with NaN, and want to remove it (without loosing index):

    serie = serie.dropna()

    # create data for example
    data = np.array(['g', 'e', 'e', 'k', 's']) 
    ser = pd.Series(data)
    ser.replace('e', np.NAN)
    print(ser)
    
    0      g
    1    NaN
    2    NaN
    3      k
    4      s
    dtype: object
    
    # the code
    ser = ser.dropna()
    print(ser)
    
    0    g
    3    k
    4    s
    dtype: object
    
    0 讨论(0)
  • 2020-11-29 05:31
    >>> s = pd.Series([1,2,3,4,np.NaN,5,np.NaN])
    >>> s[~s.isnull()]
    0    1
    1    2
    2    3
    3    4
    5    5
    

    update or even better approach as @DSM suggested in comments, using pandas.Series.dropna():

    >>> s.dropna()
    0    1
    1    2
    2    3
    3    4
    5    5
    
    0 讨论(0)
提交回复
热议问题