title: Pandas DataFrame mutability
body: <p>I am pretty new to Panda's Dataframe and it would be highly appreciated if someone can briefly discuss about the mutability of DataFrame to me with the following example:</p>
  
  <pre><code>d1=pd.date_range('1/1/2016',periods=10,freq='w')
  col1=['open','high','low','close']
  list1=np.random.rand(10,4)
  df1=pd.DataFrame(list1,d1,col1)
  </code></pre>
  
  <p>To my understanding, currently df1 is a reference to a df object.</p>
  
  <p>If I pass df1 or slicing of df1 (e.g. <code>df1.iloc[2:3,1:2]</code>) as an input to a new df, (e.g. <code>df2=pd.DataFrame(df1)</code>), does df2 return a new instance of dataframe or it is still referring to df1 that makes df1 exposed to df2?</p>
  
  <p>Also any other point that I should pay attention to regarding mutability of DataFrame will be very much appreciated. </p>