回答編集履歴
2
修正
test
CHANGED
@@ -13,10 +13,13 @@
|
|
13
13
|
a = [1, 2, 3]
|
14
14
|
b = a
|
15
15
|
|
16
|
+
c = a.copy()
|
17
|
+
|
16
18
|
a[1] = 9
|
19
|
+
|
17
20
|
print(b)
|
18
21
|
# > [1, 9, 3]
|
19
22
|
print(c)
|
20
23
|
# > [1, 2, 3]
|
21
24
|
```
|
22
|
-
|
25
|
+
|
1
追記
test
CHANGED
@@ -1,14 +1,13 @@
|
|
1
|
-
> データフレームで特定のカラムをリストとして抽出してのち、
|
2
|
-
そのリストの要素に変更を加えると元のデータフレームの要素まで変更されるのはどうしてなのでしょうか。
|
1
|
+
> データフレームで特定のカラムをリストとして抽出してのち、そのリストの要素に変更を加えると元のデータフレームの要素まで変更されるのはどうしてなのでしょうか。
|
3
2
|
|
4
3
|
そういう仕様だからです。
|
5
4
|
|
6
5
|
pythonのデータの多くは、変数はその値を持っているのでなく、参照しています。
|
7
6
|
以下のbはaと同じものを指しているので、aを変更するとbも変更されているように見えます。
|
8
|
-
cはaに入っているもののコピーを指しているので
|
7
|
+
cはaに入っているもののコピーを指しているので変更されません。(あたりまえ。)
|
9
8
|
|
10
9
|
DataFrameも同じです。
|
11
|
-
別の実
|
10
|
+
別の実体にしたいのであれば、コピーをしてください。
|
12
11
|
|
13
12
|
```python
|
14
13
|
a = [1, 2, 3]
|
@@ -17,5 +16,7 @@
|
|
17
16
|
a[1] = 9
|
18
17
|
print(b)
|
19
18
|
# > [1, 9, 3]
|
19
|
+
print(c)
|
20
|
+
# > [1, 2, 3]
|
20
21
|
```
|
21
22
|
データフレームの場合も
|