본문 바로가기
판다스/판다스 팁

[pandas] assign 함수로 열을 만들 때 특수문자가 있는 경우 해결 방법

by 김판다t 2023. 5. 3.

다음 데이터 프레임의 각 행의 합을 구해서 열로 만들어보자

 

import pandas as pd
data = {'colA':[1, 2, 3], 'colB':[4, 5, 6]}
df = pd.DataFrame(data)

df:

 

 

 

각 행의 합을 구해보자 아래와 같은 코드로 가능하다

 

df.sum(axis=1)

 

 

 

각 행의 합을 하나의 열로 만들어주자. 열의 이름은 sum of cols 로 만들자

당연히 아래와 같은 배정방식으로 열만들기를 하면 만들 수 있다

 

df['sum of cols'] = df.sum(axis=1)

 

df: 

 

 

배정 방식을 사용하면 간단하지만 여러가지 이유로 (inplace(덮어쓰기)를 피하기 위하거나 여러개의 열을 생성할 경우) 열을 만드는 함수 assign을 사용할 때는 열 이름에 특수문자(이 경우 공백)가 있어서 인자(parameter)가 될 수 없어 에러가 발생한다 

 

df.assign(sum of cols=df.sum(axis=1))

 

SyntaxError: invalid syntax. Perhaps you forgot a comma?

 

 

 

이때는 **kwargs(keyword arguments)를 사용해 딕셔너리로 인자와 인수를 입력하면 된다.

딕셔너리의 key는 문자열로 입력해야 하는 것에 주의

 

df.assign(**{'sum of cols': df.sum(axis=1)})

 

 

 

실무에서는 그리고 판다스에 숙달될수록 assign으로 열을 만들 때가 더 많으므로 알아두자

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas