Pandas는 언제 DataFrame의 복사본과 뷰를 생성합니까?

Barbara Streisand
풀어 주다: 2024-11-04 05:28:02
원래의
675명이 탐색했습니다.

When Does Pandas Create a View vs. a Copy of a DataFrame?

Pandas의 보기 및 복사 규칙 이해

Pandas에서 데이터 프레임을 다룰 때 보기와 복사본의 차이점을 이해하는 것이 중요합니다. 이러한 구별은 데이터 프레임의 하위 집합에 대한 수정 사항이 원본 데이터 프레임에 영향을 미치는지 여부를 결정합니다.

뷰 생성과 복사본 생성을 관리하는 규칙

  • 복사:

    • 값을 설정하는 인덱서를 제외한 모든 작업은 복사본을 생성합니다.
    • 사본을 반환하는 작업에는 쿼리(.query), 데이터 조작 함수( .fillna, .dropna) 및 특정 슬라이싱 작업.
  • 보기:

    • 값을 설정하는 인덱서(_loc , _iloc, _iat, _at)은 기본적으로 데이터프레임을 내부에서 수정합니다.
    • 단일 유형의 개체를 가져오는 인덱서는 메모리 레이아웃에 따라 보기 또는 복사본일 수 있습니다. 그러나 이는 신뢰할 수 있는 지표는 아닙니다.

예외 및 설명

  • inplace=True: 일부 작업은 복사본을 반환하는 대신 원본 데이터프레임을 수정하는 내부 옵션(예: _inplace=True)을 제공합니다.
  • 다중 유형 개체: 다중 유형 개체의 인덱서 항상 복사본을 생성합니다.
  • 체인 인덱싱: 체인 인덱싱 작업(예: _[_df.C <= df.B].loc[:,'B':'E'] _) 항상 뷰를 생성하는 것은 아니므로 피해야 합니다. 대신 단일 인덱싱 작업을 사용하여 수정할 하위 집합을 명시적으로 지정합니다. _df.loc[_df.C <= df.B, 'B':'E']_.

사용 예

다음 예를 고려하세요.

<code class="python">df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9))
df[df.C <= df.B] = 7654321</code>
로그인 후 복사

이 작업은 인덱서 df[df.C <= df 때문에 원본 데이터 프레임(_df_)을 수정합니다. .B]은 값 설정에 사용되므로 뷰 역할을 합니다.

결론

Pandas에서 뷰 생성과 복사본 생성을 관리하는 규칙을 이해하는 것은 효과적인 데이터프레임 조작 위에 설명된 원칙을 따르면 의도하지 않은 데이터 수정을 방지하고 데이터 무결성을 보장할 수 있습니다.

위 내용은 Pandas는 언제 DataFrame의 복사본과 뷰를 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!