df2 = df.copy() for col in df.columns: df2[col] = df2[col].replace(to_replace = 1, value = col) df2[col] = df2[col].replace(to_replace = 0, value = "")
물론 NumPy 의 np.where()함수를 사용하면 더 간결해진다.
일단 결과는 다음과 같다.
1
df2
A
B
C
0
A
B
C
1
C
2
A
B
3
각 원소를 이어붙이기 위해서는 + 연산자로 텍스트를 이어붙일 수 있다. 하지만 변소(or 원소) 개수가 많은 경우는 .join() 을 시도해보는 것이 좋다.
일단 결과가 비슷하게 나오긴 했는데 최종 결과와 일치시키려면 불필요한 구분자는 제거해야 한다. 조금 더 간결하고 효과적인 방법을 알아보자. 일단 데이터프레임의 변수는 .column 으로 뽑아낼 수 있다는 것은 알고 있을 것이다. 그리고 True와 False 를 사용하면 원하는 변수명만 뽑아낼 수 있다.