배경:
Pandas 버전 0.13 이상 소개 잠재적인 혼란을 강조하기 위한 SettingWithCopyWarning "연결된" 할당으로. 이 경고는 DataFrame의 복사본이 수정되어 예기치 않은 결과가 발생하는 시나리오를 해결하는 것을 목표로 합니다.
경고의 의미는 무엇인가요?
경고는 값이 DataFrame의 슬라이스 복사본에 설정됩니다. 특히 다음 줄을
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
quote_df.loc[row_index, 'TVol'] = value
경고 수정 방법:
제공된 솔루션으로 바꾸는 것이 좋습니다. 경고는 대신 loc 인덱싱을 사용하는 것입니다. 그러나 이는 모든 사용 사례에 적합하지 않을 수 있습니다. 원본 DataFrame 업데이트에 관심이 없다면 다음을 사용하여 경고를 안전하게 비활성화할 수 있습니다.
import pandas as pd pd.options.mode.chained_assignment = None # default='warn'
기타 설명:
SettingWithCopyWarning은 다음을 수행하는 연결된 할당에 플래그를 지정합니다. 항상 예상대로 작동하지는 않습니다. 문제는 첫 번째 선택이 DataFrame의 복사본을 반환하고 해당 복사본에 후속 할당이 이루어질 때 발생합니다. 이 패턴은 변경 사항이 원본 DataFrame에 반영되지 않기 때문에 혼란을 초래할 수 있습니다.
귀하의 경우 다음 코드가 경고를 유발합니다.
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
quote_df['TVol' ]는 복사본이므로 할당은 원본 DataFrame을 수정하지 않습니다. 대신 다음을 사용해 보세요:
quote_df = quote_df[quote_df['TVol'] > 0] quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
추가 리소스:
위 내용은 Pandas의 설정WithCopyWarning을 이해하고 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!