>백엔드 개발 >파이썬 튜토리얼 >Pandas의 설정WithCopyWarning을 이해하고 해결하는 방법은 무엇입니까?

Pandas의 설정WithCopyWarning을 이해하고 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-26 04:37:10721검색

How to Understand and Resolve Pandas' SettingWithCopyWarning?

Pandas의 SetWithCopyWarning 이해

배경:

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 사용자 가이드: 색인 생성 및 선택 데이터](https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html)
  • [Python 데이터 과학 핸드북: 데이터 인덱싱 및 선택](https://jakevdp.github .io/PythonDataScienceHandbook/02.01-indexing-and-selecting-data.html)
  • [실제 Python: Pandas의 SettingWithCopyWarning: 보기와 복사본](https://realpython.com/settingwithcopywarning-in-pandas/)
  • [Dataquest: SettingwithCopyWarning: Pandas에서 이 경고를 수정하는 방법](https:// www.dataquest.io/blog/settingwithcopywarning-pandas/)
  • [데이터 과학을 향하여: Pandas의 SetWithCopyWarning 설명](https://towardsdatascience.com/explaining-the-settingwithcopywarning-in-pandas-520ea63f963a)

위 내용은 Pandas의 설정WithCopyWarning을 이해하고 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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