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.