title: pd.DataFrame on dataframe
body: <p>What does pd.DataFrame does on a dataframe? Please see the code below.</p>
  
  <pre class="lang-py prettyprint-override"><code>In [1]: import pandas as pd                                                                                                                           
  
  In [2]: a = pd.DataFrame(dict(a=[1,2,3], b=[4,5,6]))                                                                                                  
  
  In [3]: b = pd.DataFrame(a)                                                                                                                           
  
  In [4]: a['c'] = [7,8,9]                                                                                                                              
  
  In [5]: a                                                                                                                                             
  Out[5]: 
     a  b  c
  0  1  4  7
  1  2  5  8
  2  3  6  9
  
  In [6]: b                                                                                                                                             
  Out[6]: 
     a  b  c
  0  1  4  7
  1  2  5  8
  2  3  6  9
  
  In [7]: a.drop(columns='c', inplace=True)                                                                                                             
  
  In [8]: a                                                                                                                                             
  Out[8]: 
     a  b
  0  1  4
  1  2  5
  2  3  6
  
  In [9]: b                                                                                                                                             
  Out[9]: 
     a  b  c
  0  1  4  7
  1  2  5  8
  2  3  6  9
  </code></pre>
  
  <p>In <code>In[3]</code>, the function <code>pd.DataFrame</code> is applied on a dataframe <code>a</code>. It turns out that the ids of <code>a</code> and <code>b</code> are different. However, when a column is added to <code>a</code>, the same column is added to <code>b</code>, but when we drop a column from <code>a</code>, the column is not dropped from <code>b</code>. So what does <code>pd.DataFrame</code> does? Are <code>a</code> and <code>b</code> the same object or different? What should we do to <code>a</code> so that we drop the column from <code>b</code>? Or, how do we prevent a column from being added to <code>b</code> when we add a column to <code>a</code>?</p>