>  기사  >  백엔드 개발  >  Pandas: DataFrame에서 선택하면 언제 뷰와 복사본이 생성되나요?

Pandas: DataFrame에서 선택하면 언제 뷰와 복사본이 생성되나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-05 00:12:02660검색

Pandas: When Does Selecting from a DataFrame Create a View vs. a Copy?

Pandas: 뷰와 복사본 생성 규칙 이해

뷰와 복사본 식별의 혼란

Pandas DataFrame에서 선택한 결과가 보기인지 아니면 복사본인지 결정하는 것은 혼란스러울 수 있습니다. 이러한 혼란은 주로 다양한 인덱싱 작업과 다양한 동작으로 인해 발생합니다.

일반 규칙

  • 모든 DataFrame 작업은 본질적으로 복사본을 생성합니다.
  • inplace=True 옵션은 사용 가능한 경우 내부 수정을 허용합니다.
  • 값을 설정하는 인덱서(예: .loc, .iloc, .iat, .at)는 일반적으로 내부에서 작업을 수행합니다.
  • 인덱서를 사용하여 단일 데이터 유형 개체에서 값을 가져오면 뷰가 생성되는 경우가 많습니다(메모리 레이아웃이 이에 영향을 줄 수 있음).
  • 인덱서를 사용하여 여러 데이터 유형 개체에서 값을 가져오면 항상 뷰가 생성됩니다. copy.

구체적인 예

  • 비교에 값 할당:

    <code class="python">df[df.C <= df.B] = 7654321</code>

    이 할당은 인덱서 .loc가 값을 내부 설정하는 데 사용되기 때문에 원본 DataFrame df를 수정합니다.

  • 체인 인덱싱:

    <code class="python">df[df.C <= df.B].loc[:, 'B':'E']</code>

    이 작업은 신뢰할 수 없으므로 권장되지 않습니다. 잠재적인 문제를 방지하려면 대신 다음 구문을 사용하십시오.

    <code class="python">df.loc[df.C <= df.B, 'B':'E']</code>

쿼리를 기반으로 값 수정

특정 쿼리 조건을 충족하는 DataFrame은 쿼리 조건을 인수로 사용하여 loc 인덱서를 사용합니다. 예:

<code class="python">df.loc[df.C <= df.B, 'E'] = 40</code>

이 할당은 df.C가 df.B보다 작거나 같은 행에 대해 'E' 열의 값만 변경합니다.

위 내용은 Pandas: DataFrame에서 선택하면 언제 뷰와 복사본이 생성되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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