繁体   English   中英

通过变量复制数据框与通过列复制变量

[英]Copying dataframes through variables vs copying through variables for columns

我一直在玩python,并且了解通过.copy函数复制数据帧的概念,而不是仅仅将其重新分配给变量。

假设我们有以下数据框:dfx:

   Name        Score1   Score2  Score3        Score4
0  Jack            10  Perfect      10       Perfect
1  Jill            10       10      10  Not Finished
2  Jane            20       10      10             5
3   Tom  Not Finished       15      10             5

dfx2 = dfx.drop("Score1",axis = 1)

dfx2:

   Name   Score2  Score3        Score4
0  Jack  Perfect      10       Perfect
1  Jill       10      10  Not Finished
2  Jane       10      10             5
3   Tom       15      10             5

再次运行dfx仍返回原始数据帧

   Name        Score1   Score2  Score3        Score4
0  Jack            10  Perfect      10       Perfect
1  Jill            10       10      10  Not Finished
2  Jane            20       10      10             5
3   Tom  Not Finished       15      10             5

重新分配是否也应导致从原始数据集中删除“ Score1”列?

但是,运行以下命令:

dfx3 = dfx

dfx3

   Name        Score1   Score2  Score3        Score4
0  Jack            10  Perfect      10       Perfect
1  Jill            10       10      10  Not Finished
2  Jane            20       10      10             5
3   Tom  Not Finished       15      10             5

dfx3.loc[0,"Score4"] = "BAD"

dfx3

   Name        Score1   Score2  Score3        Score4
0  Jack            10  Perfect      10           BAD
1  Jill            10       10      10  Not Finished
2  Jane            20       10      10             5
3   Tom  Not Finished       15      10             5

dfx
   Name        Score1   Score2  Score3        Score4
0  Jack            10  Perfect      10           BAD
1  Jill            10       10      10  Not Finished
2  Jane            20       10      10             5
3   Tom  Not Finished       15      10             5

确实会导致原始数据集被修改。

有什么解释为什么列删除不会修改原始数据集,但是元素更改会更改原始数据集? 并且似乎对分配的数据集中的列名进行的任何更改也会修改原始数据集。

你引用dfx3dfx一个数据帧,如果你想要做的操作上dfx3有类似列dfx的,那么你应该做的副本dfxdfx3不是他们两个参考相同数据帧。

dfx3 = dfx.copy()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM