首页 > 解决方案 > Pandas .fllna() 即使使用就地参数也不会填写值

问题描述

我有一个大数据框 ( df),我想在其中填写某些列中的缺失值。我试着像下面这样做,但他们仍然没有填写。

df[
    ['incurred', 'noncatincrd', 'catincrd', 'clmcnt', 'noncatcnt', 'catcnt', 'cvrcnt', 'CMincurred'
    , 'CMcvrcnt', 'CLincurred', 'CLcvrcnt', 'PDincurred', 'PDcvrcnt', 'OLincurred', 
     'OLcvrcnt']
   ].fillna(0, inplace = True)

我不确定我错过了什么。我在熊猫 0.24.2

标签: pythonpandas

解决方案


刚刚在 git 上看到了这个:https ://github.com/pandas-dev/pandas/issues/14858

这样做的方法是

df.loc[:,
    ['incurred', 'noncatincrd', 'catincrd', 'clmcnt', 'noncatcnt', 'catcnt', 'cvrcnt', 'CMincurred', 'CMcvrcnt'
   , 'CLincurred', 'CLcvrcnt', 'PDincurred', 'PDcvrcnt', 'OLincurred', 'OLcvrcnt']
] = df.loc[:,
    ['incurred', 'noncatincrd', 'catincrd', 'clmcnt', 'noncatcnt', 'catcnt', 'cvrcnt', 'CMincurred', 'CMcvrcnt'
   , 'CLincurred', 'CLcvrcnt', 'PDincurred', 'PDcvrcnt', 'OLincurred', 'OLcvrcnt']
].fillna(0)

推荐阅读