>백엔드 개발 >파이썬 튜토리얼 >Pandas의 설정WithCopyWarning을 효과적으로 처리하려면 어떻게 해야 합니까?

Pandas의 설정WithCopyWarning을 효과적으로 처리하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-25 15:02:12144검색

How Can I Effectively Handle Pandas' SettingWithCopyWarning?

Pandas에서SettingWithCopyWarning 처리

Pandas를 0.11에서 0.13.0rc1로 업그레이드하는 동안 사용자는 수많은 SettingWithCopyWarning 메시지를 접할 수 있습니다. 그러한 예 중 하나는 다음과 같습니다.

E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE

경고 이해

SettingWithCopyWarning은 다음과 같이 잠재적으로 혼란스러운 "연결된" 할당에 플래그를 지정합니다.

df[df['A'] > 2]['B'] = new_val  # new_val not set in df

항상 작동하는 것은 아닙니다. 특히 첫 번째 선택 항목이 복사본을 반환하는 경우 예상됩니다. 이 문제를 해결하려면 다음을 사용하세요.

df.loc[df['A'] > 2, 'B'] = new_val

제공된 코드에서 경고 해결

제공된 코드 조각에서:

quote_df['TVol']   = quote_df['TVol']/TVOL_SCALE

다음과 같은 연결 할당:

quote_df = quote_df[quote_df['A'] > 2]
quote_df['TVol'] = new_val

이 패턴은 부정 예제와 구별할 수 없으며 다음을 트리거합니다. 경고.

경고 비활성화

쓰기가 원래 프레임에 영향을 미치지 않을 것이라고 확신하는 경우 다음을 사용하여 경고를 비활성화하십시오.

import pandas as pd
pd.options.mode.chained_assignment = None  # default='warn'

추가 정보

자세한 내용은 다음 리소스를 참조하세요.

  • Pandas 사용자 가이드: 데이터 인덱싱 및 선택
  • Python 데이터 과학 핸드북: 데이터 인덱싱 및 선택
  • 실제 Python: Pandas의 SettingWithCopyWarning
  • Dataquest: SettingwithCopyWarning: Pandas에서 이 경고를 수정하는 방법
  • 데이터 과학을 향하여: 설정에 대한 CopyWarning 설명 팬더

위 내용은 Pandas의 설정WithCopyWarning을 효과적으로 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.