title: pd.NA vs np.nan for pandas
body: <p><code>pd.NA</code> vs <code>np.nan</code> for pandas. Which one to use with pandas and why to use? What are main advantages and disadvantages of each of them with pandas?</p>
  
  <p>Some sample code that uses them both:</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  
  df = pd.DataFrame({ 'object': ['a', 'b', 'c',pd.NA],
                     'numeric': [1, 2, np.nan , 4],
                      'categorical': pd.Categorical(['d', np.nan,'f', 'g'])
                   })
  </code></pre>
  
  <p>output:</p>
  
  <pre><code>|    | object   |   numeric | categorical   |
  |---:|:---------|----------:|:--------------|
  |  0 | a        |         1 | d             |
  |  1 | b        |         2 | nan           |
  |  2 | c        |       nan | f             |
  |  3 | &lt;NA&gt;     |         4 | g             |
  </code></pre>