【发布时间】:2022-02-15 22:55:08
【问题描述】:
我有一个带有 nans 的数据框:
>>>df.head()
Out[1]:
JPM US SMALLER COMPANIES C ACC
1990-01-02 NaN
1990-01-03 NaN
1990-01-04 NaN
1990-01-05 NaN
1990-01-08 NaN
我有另一个数据框,其中包含值:
>>>t.head()
Out[1]:
1990-01-02 51.95
1990-01-03 52.63
1990-01-04 53.04
1990-01-05 52.07
1990-01-08 51.73
Name: JPM US SMALLER COMPANIES C ACC, dtype: float64
不幸的是,df.fillna 似乎对我不起作用:
>>>df.fillna( t ).head()
Out[1]:
JPM US SMALLER COMPANIES C ACC
1990-01-02 NaN
1990-01-03 NaN
1990-01-04 NaN
1990-01-05 NaN
1990-01-08 NaN
[5 rows x 1 columns]
为什么会这样?我在熊猫 0.13.1
【问题讨论】:
-
糟糕。我修好了它。 df 应该是一个系列,而不是一个数据框。之后它就起作用了。
-
在使用DataFrame的情况下,可以使用DataFrame.where来使用另一个frame的值来替换null时的值。
-
@benjwadams 我认为在这种情况下使用combine_first 或update 可能会更好。它们是为此目的而定制的,因此它们应该可以帮助您避免错误。