title: Pandas .fillna() replacing every value with NaN instead of replacing only NaN values
body: <p>I'm currently attempting the Kaggle housing prices challenge seen in this link. <a href="https://www.kaggle.com/c/house-prices-advanced-regression-techniques" rel="nofollow noreferrer">https://www.kaggle.com/c/house-prices-advanced-regression-techniques</a>.</p>
  <p>I have a concatenated table which combines the training and testing tables into one in order to handle all missing values at once.</p>
  <pre><code>combine_df = pd.concat([train, test], axis=0, sort=False) 
  combine_df.drop(['Id', 'SalePrice'], axis=1, inplace=True)
  </code></pre>
  <p>I then attempt to fill all NaN categorical values with the following lines below. Where null_columns is a list of columns that I want to replace NaN values.</p>
  <pre><code>combine_df[null_columns] = combine_df[null_columns].fillna('0', inplace=True)
  </code></pre>
  <p>However, this line changes every value in the columns into a NaN value instead of replacing NaN values with '0' as seen in the output below which shows the amount of NaN values for each column.</p>
  <pre><code>BsmtQual 2919 
  BsmtCond 2919 
  BsmtExposure 2919 
  BsmtFinType1 2919
  BsmtFinType2 2919 
  GarageType 2919 
  GarageFinish 2919 
  GarageQual 2919 
  GarageCond 2919 
  </code></pre>
  <p>I've tried using .replace, a lambda function, and also using .loc and all of them end up doing the same thing as the code above. What is going on with my code that causes this? I've also been unable to find anything regarding this on stack overflow. Any help would be greatly appreciated.</p>