Python 在数据框的几列上填充na

Python 在数据框的几列上填充na,python,pandas,Python,Pandas,我有一个Pandas数据框,我只想在几个列(而不是所有列)上用0填充Na,我的实际DF更大,我希望填充两个以上的列 因此: 给出: home_land_value est_cur_home_value 0 47000 119485 1 46000 184864 2 0 NaN 3 13000 106929 4 0 0 但这不会产生错误,但不会更改列: comb[['est_cur_home_value','home_yr_built']

我有一个Pandas数据框,我只想在几个列(而不是所有列)上用0填充Na,我的实际DF更大,我希望填充两个以上的列

因此:

给出:

home_land_value est_cur_home_value
0   47000   119485
1   46000   184864
2   0        NaN
3   13000   106929
4   0       0
但这不会产生错误,但不会更改列:

comb[['est_cur_home_value','home_yr_built']].fillna(0, inplace=True)
如果我只选择一列,我可以让它工作

comb['home_yr_built'].fillna(0, inplace=True)
这将提供回溯(关键错误):

我错过了什么?

试试:

comb[['home_yr_built','est_cur_home_value']] = 
       comb[['home_yr_built','est_cur_home_value']].fillna(0, inplace=False)

frame[colname]
返回序列,
frame[[colname]]
返回副本。您可以通过比较
id(df['col']]
id(df['col']])
来检查它。很有趣,谢谢您,但仍然不知道如何解决将fillna应用到DataFrames的几列应该是
inplace=False
可能?谢谢您的捕获,
in place
应该是假的哦,但是这个太大了,所以我真的需要它在place!不管这个答案如何使用更多的上下文和/或解释,它确实起作用。
comb['home_yr_built','est_cur_home_value'].fillna(0, inplace=True)
comb[['home_yr_built','est_cur_home_value']] = 
       comb[['home_yr_built','est_cur_home_value']].fillna(0, inplace=False)