Python 如何用以前的值替换pandas系列中的某些值?

Python 如何用以前的值替换pandas系列中的某些值?,python,pandas,Python,Pandas,我有一个熊猫系列对象s如下: >>> s date 2020-03-26 19.72 2020-03-27 19.75 2020-03-30 19.43 2020-03-31 19.69 2020-04-01 -- 2020-04-06 20.03 2020-04-07 20.45 2020-04-08 21.00 2020-04-09 -- 2020-04-10 20.96 2020-04-13 2

我有一个熊猫系列对象
s
如下:

>>> s
date
2020-03-26    19.72
2020-03-27    19.75
2020-03-30    19.43
2020-03-31    19.69
2020-04-01       --
2020-04-06    20.03
2020-04-07    20.45
2020-04-08    21.00
2020-04-09       --
2020-04-10    20.96
2020-04-13    20.75
2020-04-14    21.23
Name: price, dtype: object

>>> s.values
array(['19.72', '19.75', '19.43', '19.69', '--', '20.03', '20.45',
       '21.00', '20.82', '20.96', '20.75', '21.23'], dtype=object)
如何用以前的值替换
--

我的意思是我想把
s
转换成:

date
2020-03-26    19.72
2020-03-27    19.75
2020-03-30    19.43
2020-03-31    19.69
2020-04-01    19.69
2020-04-06    20.03
2020-04-07    20.45
2020-04-08    21.00
2020-04-09    21.00
2020-04-10    20.96
2020-04-13    20.75
2020-04-14    21.23
Name: price, dtype: object

属于
2020-04-01
-
被替换为
2020-03-31
的值,即
19.69

您可以将那些
-
替换为
NaN
,只需:

或者,您也可以使用,强制那些不能使用case的对象浮动:

pd.to_numeric(df.date, errors='coerce').ffill()

你能解释一下浮动('nan')的含义吗。为什么要将
'nan'
转换为float?我是否可以使用
numpy.nan
?以便它是实际的nan,而不是字符串。您也可以使用
np.nan
pd.to_numeric(df.date, errors='coerce').ffill()