> 백엔드 개발 > 파이썬 튜토리얼 > Pandas 설정WithCopyWarning을 어떻게 피할 수 있나요?

Pandas 설정WithCopyWarning을 어떻게 피할 수 있나요?

Linda Hamilton
풀어 주다: 2024-12-31 19:36:11
원래의
607명이 탐색했습니다.

How Can I Avoid the Pandas SettingWithCopyWarning?

Pandas의 SetWithCopyWarning 이해

소개

Pandas 0.13.0rc1로 업그레이드하면 새로운 경고가 나타날 수 있습니다. CopyWarning으로 설정. 이 경고는 원본 DataFrame 자체가 아닌 DataFrame 슬라이스의 복사본을 수정할 때 발생할 수 있는 문제에 대해 경고하는 역할을 합니다.

경고 원인

경고가 발생합니다. 이전에 복사본으로 생성된 DataFrame의 조각에 값이 할당되는 경우. 예를 들어 다음 코드를 고려해 보세요.

quote_df = pd.read_csv(StringIO(str_of_all), sep=',', names=list('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg'))
quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE
로그인 후 복사

이 코드에서 quote_df 변수는 처음에 원본 DataFrame의 복사본으로 생성됩니다. quote_df의 'TVol' 열에 새 값을 할당하면 변경 사항이 원래 DataFrame으로 다시 전파되지 않기 때문에 SettingWithCopyWarning이 트리거됩니다.

경고 무시의 결과

경고를 무시하면 데이터에 예상치 못한 동작과 불일치가 발생할 수 있습니다.

권장 접근 방식

경고를 방지하고 적절한 데이터 조작을 보장하려면 .loc 접근자를 사용하여 원본 DataFrame에서 직접 값을 수정해야 합니다. 다음 코드는 .loc 접근자를 사용하여 위의 예를 다시 작성합니다.

quote_df.loc[:, 'TVol'] = quote_df['TVol']/TVOL_SCALE
로그인 후 복사

.loc를 사용하면 복사본 대신 원본 DataFrame에 변경 사항이 적용되도록 할 수 있습니다.

경고 비활성화

연결된 할당이 의도된 것이며 어떤 오류도 발생하지 않는다고 확신하는 경우 문제가 있는 경우 다음 코드를 사용하여 SettingWithCopyWarning을 비활성화할 수 있습니다.

import pandas as pd
pd.options.mode.chained_assignment = None  # default='warn'
로그인 후 복사

그러나 일반적으로 경고를 비활성화하는 것보다 경고를 유발하는 근본적인 문제를 해결하는 것이 좋습니다.

결론

SettingWithCopyWarning은 데이터 조작 코드에서 잠재적인 오류를 식별하는 데 도움이 되는 귀중한 피드백을 제공합니다. 이 경고의 원인과 결과를 이해하면 코드가 의도한 대로 작동하고 데이터 무결성 문제를 방지할 수 있습니다.

위 내용은 Pandas 설정WithCopyWarning을 어떻게 피할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿