回答編集履歴

2

修正

2022/06/02 14:34

投稿

TakaiY
TakaiY

スコア12781

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

追記

2022/06/02 10:49

投稿

TakaiY
TakaiY

スコア12781

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
  データフレームの場合も