>>> 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
обновление или даже лучший подход, поскольку @DSM предлагается в комментариях, используя
pandas.Series.dropna()
:>>> s.dropna() 0 1 1 2 2 3 3 4 5 5
измените row_number()
на dense_rank()
, чтобы получить желаемые результаты:
select distinct
_row_ord = 100,
_client_id = c.client_id,
_segment = 'fake',
--_row = row_number() over(order by c.client_id)
_value =
concat
(
'HL*',
dense_rank() over(order by c.client_id) + 1 ,'*',
'testfield','~'
)
Результаты:
_row_ord _client_id _segment _value
100 1991 fake HL*2*testfield~
100 1992 fake HL*3*testfield~