Consider this code:
In [16]: data = [['Alex',10],['Bob',12],['Clarke',13]]
In [17]: df = pd.DataFrame(data,columns=['Name','Age'])
Out[18]: 
     Name  Age
0    Alex   10
1     Bob   12
2  Clarke   13
In [19]: df_new = df
In [20]: df_new['Age'] = df_new['Age'] * 90 / 100
In [21]: df_new
     Name   Age
0    Alex   9.0
1     Bob  10.8
2  Clarke  11.7
In [22]: df
     Name   Age
0    Alex   9.0
1     Bob  10.8
2  Clarke  11.7
When I assigned new values to the Age columns of the new DataFrame (df_new), the Age column of the original DataFrame (df) changed as well.
Why does it happen? Does it have something to do with the way I create a copy of the original DataFrame? Seem like they are chained together.
 
    