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