pythonのpandasにおいては、dataframeのコピーを=で行うと、データのコピーではなく、いわゆる参照渡しになる。 そうすると、下記のように、コピー先の変数に対して操作を行った結果が、コピー元の変数に対して反映される。 import pandas as pd import numpy as np ## それぞれのやり方でコピーした場合のID df = pd.DataFrame({ 'A' : 'FOO', 'B' : 'foo', 'C' : 'ふー'}, index=[1,2,3]) # 確認(Before) display(df) # コピー(参照渡し) df_copy = df # コピーに対して、1を代入したD列を追加する df_copy['D'] = 1 # 確認(After) display(df)