본문 바로가기
IT DEV OPS

판다스 - 기존 데이터프레임에 새로운 컬럼을 생성하고 값을 넣는 방법

by market23 2024. 1. 26.
반응형
  • 기존 : 데이터 프레임에 만들어진 새로운 컬럼 값을 넣는 방법

  아래와 같이 기존에는 데이터 프레임 안에 컬럼 명을 넣고 값을 바로 넣으면 입력이 되었다. 하지만, 현재 판다스 최신 버젼 부터는 하기와  같은 경고 메세지가  발생 된다.

df_tar['time'] = pd.to_datetime(df_tar['last_mdfcn_dt'], format = datetime_format)

 

  • 기존 방식 적용시 발생 되는 경고 메세지

  여러 설명이 필요하겠지만, 결국 loc를  사용하라는 뜻이다. 원인은 set과 get을 동시에 하기 때문이지만, 하기 가이드대로 하는게 판다스에서 원하는 형태이니 사람이 맞추는 방법밖에 없는 듯 싶다.

A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

 

 

  • 해결 방안

  copy 명령어를 통해 신규 생성되는 컬럼을 명확하고, loc 명령어로 데이터 프레임에 넣어주는 형태가 해결 방안으로 들 수 있다. 사실 가독성 측면에서는 개인적으로 이전 방식이 더 좋다고 보지만, 데이터 프레임 구조상 읽고, 쓰기가 동시에 발생 할 수 있기 때문에 하기 방식에 익숙해져야 될 듯 싶다. 

df_tar.loc[:,['time']] = pd.to_datetime(df_tar['last_mdfcn_dt'], format = datetime_format).copy()

 

댓글


loading