Pandas의 연결된 할당
Pandas에서 데이터 프레임으로 작업할 때 연결된 할당은 예상치 못한 동작이나 거짓 긍정으로 이어질 수 있습니다. CopyWarning으로 설정. 이 경고의 목적은 연결된 할당과 관련된 잠재적인 함정을 사용자에게 알리는 것입니다.
연결된 할당 작동 방식
Pandas에서 대부분의 메서드 호출은 개체의 복사본을 반환합니다. 이는 df['column'] = df['column'].fillna(...)와 같은 연결된 할당을 수행할 때 원본 데이터프레임 자체가 아닌 원본 데이터프레임의 복사본을 수정하게 될 수 있음을 의미합니다.
.ix(), .iloc() 및 .loc() 연결 효과
ix(), iloc() 및 loc 선택 ()는 연결된 할당 동작에 영향을 미칠 수 있습니다.
최적의 코딩 방법
잠재적인 문제를 방지하려면 연결된 할당의 경우 작업 결과를 새 변수에 명시적으로 할당하는 것이 좋습니다. 예를 들어 다음 대신에 다음을 사용합니다.
<code class="python">df['amount'] = df['amount'].fillna(...)</code>
사용:
<code class="python">df['amount_updated'] = df['amount'].fillna(...)</code>
오탐지
일부 연결된 할당은 실행하는 경우에도 경고를 트리거할 수 있습니다. 원본 데이터 프레임을 수정하지 마십시오. 이러한 경우 다음을 사용하여 경고를 끌 수 있습니다.
<code class="python">pd.set_option('chained_assignment', None)</code>
예
다음 코드를 고려하세요.
<code class="python">data['amount'] = data.apply(lambda row: function1(row, date, qty), axis=1) data['amount'] = data['amount'].astype(float)</code>
이 코드 data['amount']가 두 번 할당되기 때문에 SettingWithCopyWarning이 발생할 수 있습니다. 이 문제를 해결하려면 첫 번째 작업의 결과를 새 변수에 할당하세요.
<code class="python">temp_amount = data.apply(lambda row: function1(row, date, qty), axis=1) data['amount'] = temp_amount.astype(float)</code>
위 내용은 연결된 할당을 잘못 사용하면 어떻게 Pandas에서 예기치 않은 결과가 발생할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!