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