pandas
에서 데이터프레임을 복사하는 방법에 대해 예제와 함께 상세히 설명하겠습니다.
예제 데이터 생성
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']
}
df = pd.DataFrame(data)
print(df)
출력 결과
Name Age City
0 Alice 25 New York
1 Bob 30 London
2 Charlie 35 Paris
얕은 복사(Shallow Copy)
얕은 복사는 =
연산자를 사용하여 데이터프레임을 다른 변수에 할당하는 방법입니다.
얕은 복사를 하게 되면 새로운 변수는 원본 데이터프레임을 참조하게 됩니다.
따라서 한 쪽의 데이터를 수정하면 다른 쪽도 영향을 받게 됩니다.
# 얕은 복사
df_copy = df
# 데이터프레임 수정
df_copy.loc[0, 'Age'] = 26
# 원본과 복사본 모두 변경됨
print(df)
출력 결과
Name Age City
0 Alice 26 New York
1 Bob 30 London
2 Charlie 35 Paris
깊은 복사(Deep Copy)
깊은 복사는 copy()
메서드를 사용하여 데이터프레임을 복사하는 방법입니다.
깊은 복사를 하게 되면 새로운 변수는 원본 데이터프레임과 완전히 독립적인 복사본이 됩니다.
따라서 복사본을 수정하더라도 원본에는 영향을 주지 않습니다.
# 깊은 복사
df_copy = df.copy()
# 데이터프레임 수정
df_copy.loc[0, 'Age'] = 27
# 원본은 변경되지 않음
print(df)
출력 결과
Name Age City
0 Alice 26 New York
1 Bob 30 London
2 Charlie 35 Paris
복사본에서 데이터 수정이 원본에 영향을 주는 경우
복사본을 생성한 후에 해당 복사본에서 데이터를 수정하면 원본에도 영향을 줍니다.
이는 데이터프레임의 일부 데이터만 변경하는 경우에는 깊은 복사가 이루어지지만, 새로운 열을 추가하는 경우에는 얕은 복사가 이루어집니다.
# 복사본 수정이 원본에 영향을 주는 경우
df_copy = df.copy()
# 새로운 열 추가
df_copy['Country'] = ['USA', 'UK', 'France']
# 원본과 복사본 모두 변경됨
print(df)
출력 결과
Name Age City Country
0 Alice 26 New York USA
1 Bob 30 London UK
2 Charlie 35 Paris France
복사본에서 데이터 수정이 원본에 영향을 주지 않도록 복사
copy()
메서드의 deep=True
옵션을 사용하면 복사본에서 데이터를 수정해도 원본에 영향을 주지 않도록 깊은 복사가 이루어집니다.
# 복사본 수정이 원본에 영향을 주지 않도록 복사
df_copy = df.copy(deep=True)
# 새로운 열 추가
df_copy['Country'] = ['USA', 'UK', 'France']
# 원본은 변경되지 않음
print(df)
출력 결과
Name Age City
0 Alice 26 New York
1 Bob 30 London
2 Charlie 35 Paris
이렇게 pandas
의 데이터프레임을 복사하는 방법에 대해 얕은 복사와 깊은 복사, 그리고 어떤 경우에 원본에 영향을 주는지, 그리고 원본에 영향을 주지 않도록 복사하는 방법을 예제와 함께 상세히 설명드렸습니다.
데이터프레임을 다룰 때에는 데이터를 복사하는 방법에 유의하여 원본 데이터의 무결성을 유지하는 것이 중요합니다.
[Python] 19. 로그(logging)를 남기는 방법
파이썬에서 로그(logging)를 남기는 기능은 프로그램의 실행 상태를 기록하고 디버깅할 때 유용합니다. 로그를 남기면 코드 실행 중에 발생하는 중요한 정보, 경고, 오류 등을 기록하고 추적할 수 있습니다. 파이썬에서 로그를 남기는 기능은 logging 모듈을 사용하여 구현할 수 있습니다.…