deep copy(깊은 복사)
shallow copy(얕은 복사)
copy() 메소드
s1 = pd.Series(range(10,101,10))
s1
# 0 10
# 1 20
# 2 30
# 3 40
# 4 50
# 5 60
# 6 70
# 7 80
# 8 90
# 9 100
s1[0] = 1000 #특정 index 값을 변경
s1
# 0 1000
# 1 20
# 2 30
# 3 40
# 4 50
# 5 60
# 6 70
# 7 80
# 8 90
# 9 100
s1[[0, 3, 6]] = 3200 #같은 값으로 변경
s1
# 0 3200
# 1 20
# 2 30
# 3 3200
# 4 50
# 5 60
# 6 3200
# 7 80
# 8 90
# 9 100
s1[[1, 4, 7, 8]] = 1000,4000,7000,8000 #각각 다른 값으로 변경. 튜플대입(리스트대입도 가능)
s1
# 0 3200
# 1 1000
# 2 30
# 3 3200
# 4 4000
# 5 60
# 6 3200
# 7 7000
# 8 8000
# 9 100
s1[:4] = 1234 # 0 ~ 3
s1
# 0 1234
# 1 1234
# 2 1234
# 3 1234
# 4 4000
# 5 60
# 6 3200
# 7 7000
# 8 8000
# 9 100
s1[::3] = 98765
s1
# 0 98765
# 1 1234
# 2 1234
# 3 98765
# 4 4000
# 5 60
# 6 98765
# 7 7000
# 8 8000
# 9 98765
s100 = s1[2:8]
s100
# 2 1234
# 3 98765
# 4 4000
# 5 60
# 6 98765
# 7 7000
s100[3] = 10000
s100
# 2 1234
# 3 10000
# 4 4000
# 5 60
# 6 98765
# 7 7000
s1
# 0 98765
# 1 1234
# 2 1234
# 3 10000 #s1[3]도 10000으로 변경됨
# 4 4000
# 5 60
# 6 98765
# 7 7000
# 8 8000
# 9 98765
s200 = s1[2:8].copy() #series/dataframe 객체.copy() : deep copy
s200
# 2 1234
# 3 10000
# 4 4000
# 5 60
# 6 98765
# 7 7000
s200[3] = 3 #Deep copy이므로 원본은 변경되지 않는다.
s200
# 2 1234
# 3 3
# 4 4000
# 5 60
# 6 98765
# 7 7000
s1
# 0 98765
# 1 1234
# 2 1234
# 3 10000
# 4 4000
# 5 60
# 6 98765
# 7 7000
# 8 8000
# 9 98765