Pandas에서 DataFrame 복사의 필요성 이해
Pandas 데이터 프레임으로 작업할 때 데이터프레임은 중요한 의미를 가질 수 있습니다. 기본적으로 데이터프레임을 인덱싱하면 원래 데이터 구조에 대한 참조가 반환됩니다. 따라서 하위 집합을 수정하면 상위 프레임이 직접 수정됩니다.
이 동작을 설명하려면 다음 예를 고려하세요.
df = pd.DataFrame({'x': [1, 2]}) df_sub = df[0:1] df_sub.x = -1 print(df)
출력:
x 0 -1 1 2
보시다시피 하위 집합의 값을 수정하면 원본 데이터 프레임의 해당 값이 직접 변경됩니다.
상황에 따라 원본 데이터프레임을 수정으로부터 보호하는 것이 필수적인 경우 복사가 필요합니다. 이는 .copy() 메소드를 사용하여 달성할 수 있습니다. 예는 다음과 같습니다.
df_sub_copy = df[0:1].copy() df_sub_copy.x = -1 print(df)
출력:
x 0 1 1 2
이 경우 .copy()는 df_sub_copy에 대한 변경 사항이 원본 df에 영향을 미치지 않도록 합니다.
이 동작은 전체 복사에만 적용된다는 점을 이해하는 것이 중요합니다. 즉, 전체 참조 데이터가 새 개체에 복사된다는 의미입니다. 반면, 단순 복사본은 원본과 동일한 기본 데이터를 참조하는 새 개체를 만듭니다. 따라서 얕은 복사본에 대한 변경 사항은 원본 데이터 프레임에도 영향을 미칩니다.
위 내용은 Pandas DataFrame 수정이 때때로 원본 DataFrame에 영향을 미치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!