title: Fillna in multiple columns in place in Python Pandas
body: <p>I have a pandas dataFrame of mixed types, some are strings and some are numbers. I would like to replace the NAN values in string columns by '.', and the NAN values in float columns by 0.</p>
  
  <p>Consider this small fictitious example:</p>
  
  <pre><code>df = pd.DataFrame({'Name':['Jack','Sue',pd.np.nan,'Bob','Alice','John'],
      'A': [1, 2.1, pd.np.nan, 4.7, 5.6, 6.8],
      'B': [.25, pd.np.nan, pd.np.nan, 4, 12.2, 14.4],
      'City':['Seattle','SF','LA','OC',pd.np.nan,pd.np.nan]})
  </code></pre>
  
  <p>Now, I can do it in 3 lines:</p>
  
  <pre><code>df['Name'].fillna('.',inplace=True)
  df['City'].fillna('.',inplace=True)
  df.fillna(0,inplace=True)
  </code></pre>
  
  <p>Since this is a small dataframe, 3 lines is probably ok. In my real example (which I cannot share here due to data confidentiality reasons), I have many more string columns and numeric columns. SO I end up writing many lines just for fillna. Is there a concise way of doing this? </p>