TypeError:Index.reindex() 得到意外的关键字参数“fill_value”

问题描述 投票:0回答:1

所有, 我试图通过将丢失日期与未丢失日期的列表进行比较来获取丢失日期的索引,如下所示:

a=pd.DatetimeIndex(["2000","2001","2002","2003","2004","2005","2009", "2010"])
b=pd.DatetimeIndex(["2000","2001","2002","2003","2004","2005","2006","2007","2008","2009", "2010"])
a.reindex(b)

我得到了以下内容

(DatetimeIndex(['2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01',
                '2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01',
                '2008-01-01', '2009-01-01', '2010-01-01'],
               dtype='datetime64[ns]', freq=None),
 array([ 0,  1,  2,  3,  4,  5, -1, -1, -1,  6,  7]))

我尝试使用

a.reindex(b,fill_value=np.NAN)
将所有缺失值(-1 替换为 Nan),但出现以下错误
TypeError: Index.reindex() got an unexpected keyword argument ‘fill_value’

根据 pandas 文档 fill_vaue 是 reindex 的参数之一。 有什么想法

python pandas datetime
1个回答
0
投票

首先你要做的是:

newIndex, indexer = a.reindex(b)

reindex
返回两件事。您需要/只想获得索引器。

现在你可以得到你想要的了:

indexerWithNan = np.where(indexer == -1, np.nan, indexer)

为什么你最初的代码是错误的? 与

reindex()
fill_value
不同,
pandas.Index
方法不支持
pandas.Series
对象的
pandas.DataFrame
参数。

© www.soinside.com 2019 - 2024. All rights reserved.