通过变量复制数据帧与通过列的变量复制数据帧

2024-09-30 06:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用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

会导致修改原始数据集

为什么列删除不会修改原始数据集,但元素更改会更改原始数据集?对指定数据集中的列名的任何更改似乎也会修改原始数据集


Tags: name原始数据notjackfinishedtomjaneperfect
1条回答
网友
1楼 · 发布于 2024-09-30 06:19:07

您正在将dfx3dfx引用到一个数据帧,如果您想对dfx3上具有类似于该dfx的列的dfx进行操作,那么您应该在dfx3上制作一个dfx的副本,而不是将它们都引用到同一个数据帧

dfx3 = dfx.copy()

相关问题 更多 >

    热门问题