Pandas 보기 및 복사 규칙 이해
문제 설명
Pandas, 인기 있는 Python 데이터 조작 라이브러리는 데이터프레임을 선택하고 수정하기 위한 다양한 방법을 제공합니다. 그러나 선택 항목이 원본 데이터 프레임의 복사본이나 그에 대한 뷰를 생성하는 시점을 결정하는 것은 혼란스러울 수 있습니다. 이러한 모호함은 데이터 수정을 시도할 때 예상치 못한 동작으로 이어집니다.
간단한 규칙
이러한 혼란을 해결하기 위해 Pandas의 보기 및 복사 동작을 제어하는 몇 가지 간단한 규칙이 있습니다. :
규칙 적용 대상 특정 사례
당신이 언급한 복잡한 사례를 살펴보겠습니다.
df[df.C <= df.B] = 7654321
이 경우 인덱서로 설정하는 규칙이 적용됩니다. 조건에는 두 열의 비교가 포함되므로 Pandas는 조건을 평가하기 위해 데이터프레임의 중간 복사본을 만듭니다. 그런 다음 이 복사본은 내부에서 수정됩니다. 따라서 이 표현식은 원래 데이터 프레임의 값을 성공적으로 변경합니다.
그러나 연결된 인덱싱 표현식:
df[df.C <= df.B].ix[:, 'B':'E']
은 규칙을 위반합니다. 두 개의 인덱서를 연결하면 별도의 Python 작업이 생성되므로 Pandas가 안정적으로 가로채기가 어렵습니다. 예상치 못한 동작이 발생할 수 있으므로 사용하지 않는 것이 좋습니다.
쿼리로 데이터 프레임 수정
쿼리를 기반으로 데이터 프레임 값을 수정하려면 다음 접근 방식을 사용하세요.
df.loc[df.C <= df.B, 'B':'E'] = 7654321
이 표현식은 단일 인덱서를 사용하여 쿼리 조건을 평가하고 수정할 열의 하위 집합을 지정합니다. 체인 인덱싱 접근 방식보다 빠르고 안정적입니다.
위 내용은 예기치 않은 동작 없이 쿼리를 기반으로 Pandas 데이터프레임을 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!