title: python Pandas DataFrame copy(deep=False) vs copy(deep=True) vs '='
body: <p>Could somebody explain to me a difference between</p>
  
  <pre><code>df2 = df1
  
  df2 = df1.copy()
  
  df3 = df1.copy(deep=False)
  </code></pre>
  
  <p>I have tried all options and did as follows:</p>
  
  <pre><code>df1 = pd.DataFrame([1,2,3,4,5])
  df2 = df1
  df3 = df1.copy()
  df4 = df1.copy(deep=False)
  df1 = pd.DataFrame([9,9,9])
  </code></pre>
  
  <p>and returned as follows:</p>
  
  <pre><code>df1: [9,9,9]
  df2: [1,2,3,4,5]
  df3: [1,2,3,4,5]
  df4: [1,2,3,4,5]
  </code></pre>
  
  <p>So, I observe no difference in the output between <code>.copy()</code> and <code>.copy(deep=False)</code>. Why? </p>
  
  <p>I would expect one of the options '=', copy(), copy(deep=False) to return <code>[9,9,9]</code></p>
  
  <p>What am I missing please?</p>