파이썬/데이터프레임

python(vscode)/데이터프레임 복사/연동해제하기/복사만하기/id동일함/deepcopy

gongdol 2024. 7. 22. 22:09
300x250

데이터프레임 사용할때 복사했음에도 데이터가 연동되는 경우가 있다.

연동되지않도록 하는방법을 알아보자. 

 

위의 출력 (print) 2개가 문제 상황으로 아이디가 같고, 아래는 deepcopy하여 id가 공유되지 않음을 확인할 수 있다. 

import pandas as pd
import copy

temp_ohlcv = {'code' : [], 'min_t' : [], 'close':[]}
temp_df = pd.DataFrame(temp_ohlcv, columns=['code','min_t','close'])


## 문제 : id가 동일하다. temp_df를 카피하지않고, 가져와서 그렇다.  
minute_data_0 = {}
minute_data_0["alldata_0"] = (temp_df)    

minute_data_1 = {}
minute_data_1["alldata_1"] = (temp_df)    

print(id(minute_data_0["alldata_0"]))
print(id(minute_data_1["alldata_1"]))

## 해결
minute_data_0 = {}
minute_data_0["alldata_0"] = copy.deepcopy(temp_df)    

minute_data_1 = {}
minute_data_1["alldata_1"] = copy.deepcopy(temp_df)    

print(id(minute_data_0["alldata_0"]))
print(id(minute_data_1["alldata_1"]))
300x250