필자가 칼럼명을 변경하기 위해 가장 많이 사용하는 방법은 df['칼럼명'] = 1 과 칼럼에 직접 값을 넣는 것입니다. 하지만 이렇게 하면 SettingWithCopyWarning라는 경고가 발생합니다. ( 하지만 최근 버전에서는 발생하지 않는 것 같네요. ) 경고이기 때문에 작업에 영향은 없지만, 찝찝합니다. 판다스 버전이 올라가면서 언젠가 이 방법이 막히지는 않을까 하는 생각도 듭니다. 그래서 판다스 데이터 프레임에 칼럼을 추가하는 2가지 방법에 대해서 알아보았습니다.
1. df['칼럼명'] = 1
필자가 자주 사용하는 방법입니다. 데이터 프레임 원본이 바뀌기 때문에, 원본이 유지되지는 않습니다. 가장 빠르고 직관적인 방법이라고 생각합니다.
칼럼값을 계산하기도 좋습니다.
df['칼럼명2'] = df['칼럼명'] + 1
단점은 경고가 발생한다는 것과 원본이 유지되지 않는다는 것입니다. 하지만 최근 버전에는 경고가 발생하지 않는 것 같습니다. 원본이 유지되지 않는 것도 큰 문제가 되지는 않습니다. 원본 칼럼을 바꾸면 값을 원복하기 어렵지만, 이 때문에 크게 곤란한 적은 없었습니다.
2. assign함수 이용하기
assign 함수를 이용해서 칼럼을 추가할 수 있습니다.
df.assign(칼럼명=1)
칼럼을 여러 개 추가한다면, 아래와 같이 콤마(,)로 구분해서 입력하면 됩니다.
df.assign(칼럼명1=1, 칼럼명2=22)
장점은 경고가 발생하지 않습니다. 그리고 원본을 유지할 수 있습니다. 위의 함수를 실행해도 데이터프레임이 바뀌지는 않습니다. 바꾸려면 df변수에 다시 넣어주면 됩니다. inplace=True 옵션은 사용할 수 없습니다.
그리고 R이 dplyr을 다루는 것처럼 파이프 연산을 할 수 있다는 것도 장점입니다. 뒤에 계속해서 함수를 넣으면 됩니다.
text.assign(칼럼명=1).head()
'\' 기호를 이용해서 작성하면 가독성이 올라갑니다.
text.assign(칼럼명=1) \
.head()
단점은 익숙하지 않다는 것입니다. 대괄호 입력을 안 해도 되서 편리할 것 같도 같지만, 직관적이지는 않습니다. 값을 넣는 것은 편하지만 계산해야 한다면 lambda도 써줘야 되서 불편합니다. 뭐 lambda 함수에 익숙해진다는 것도 장점일지는 모르겠습니다.
df.assign(칼럼명2= lambda x: x['칼럼명'] + 1)
R이 익숙하다면 assign함수를 이용하는 것이 편리할지도 모르겠습니다. dplyr과 유사하게 사용할 수 있기 때문이죠. 하지만 필자는 첫번째 방법을 선호합니다. 하지만 warning을 보고 싶지 않고, dplyr처럼 파이프 연산을 하고 싶다면 두 번째 방법을 이용해보는 것도 좋겠습니다.
'데이터 > 데이터 분석' 카테고리의 다른 글
파이썬 판다스 코드 cheatsheet 활용해서 공부하기 (0) | 2022.07.12 |
---|---|
리스트를 판다스 데이터프레임으로 만드는 2가지 방법 알아보기 (0) | 2022.07.02 |
파이썬 데이터 프레임 시각화하는 3가지 방법 알아보기 (0) | 2022.07.01 |
파이썬 애니메이션 차트 쉽게 만드는 방법은?! (0) | 2022.06.27 |
한국수출입통계를 파이썬으로 bar chart 그리기 (0) | 2022.06.17 |
yellow brick, ElbowVisualizer AttributeError?! (0) | 2022.05.25 |
파이썬 데이터 분석, EDA를 도와주는 패키지-sweetviz! (0) | 2022.05.03 |
코랩(colab)에서 pandas_profiling 실행하는 방법은?! (0) | 2022.04.30 |