2016-10-03 2 views
0

참/거짓 값이 포함 된 여러 열이있는 데이터 프레임이 있습니다. E. g.조건과 일치하는 DataFrame의 열 이름이있는 계열 생성

import pandas as pd 
data = pd.DataFrame([[True, True, False], 
        [False, False, True], 
        [True, False, True], 
        [False, False, False], 
        [True, True, False]], 
        columns=['A','B','C']) 

실제로 3 개 이상의 열이 많이 있습니다.

각 값이 값이 참인 모든 열의 이름 목록 인 추가 열을 생성해야합니다. 예를 들어이 있어야한다 :

0 [A, B] 
1  [C] 
2 [A, C] 
3  [] 
4 [A, B] 
Name: X, dtype: object 

(내가 지금까지했던 유일한 아이디어 인) 중첩 루프를 사용하지 않고이를 달성하기 팬더의 모든 마술이 있습니까?

답변

1

당신은 열 이름을 서브 세트 행을 루프 apply 방법을 사용하고 각 행을 사용할 수 있습니다

data.apply(lambda r: data.columns[r].tolist(), axis = 1) 

#0 [A, B] 
#1  [C] 
#2 [A, C] 
#3  [] 
#4 [A, B] 
#dtype: object 
+0

감사합니다, 즉 내가 찾던거야. – Ale

관련 문제