판다스 SettingWithCopyWarning 질문

조회수 1056회
# 윗 부분 생략
m = dom_int_skd.ETD < dom_int_skd.STD
dom_int_skd['DLA'] = dom_int_skd.ETD[m] + timedelta(1) - dom_int_skd.STD
dom_int_skd.DLA.fillna(dom_int_skd.ETD - dom_int_skd.STD, inplace=True)

# 문제가 되는 부분
dom_int_skd.DLA[dom_int_skd.DLA < pd.Timedelta(30, 'minutes')] = pd.Timedelta(0, 'minutes')

데이터프레임 dom_int_skd에서 'DLA' 열의 타임델타 값이 30분 미만인 곳이 있으면 그 부분은 타임델타 값이 0이 되게 처리하고 싶습니다.

그래서 위와 같이 코드를 짰는데 SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame 라고 나오네요.

찾아보니 "dom_int_skd.DLA[dom_int_skd.DLA < pd.Timedelta(30, 'minutes')]" 이 부분을 데이터프레임에서 파생된 것으로 인식하는 거 같고 이걸 수정하면 원본도 수정해야 하는지 알 수가 없어서 경고가 뜨는 것으로 확인했습니다.

제가 맞게 이해했나요? 원본 데이터 중에서 조건(30분 미만은 0분)에 맞는 값을 찾아서 원본 데이터를 수정하고 싶은데 어떻게 해야 하나요?

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)