2017-01-06 8 views
2

부울 배열을 인수로 사용하여 팬더 loc() 메서드를 실험하고 있습니다.축 1에 부울 값 배열이있는 팬다 loc() 메서드

a1 = pd.Series([True, False, True, False]) 

난 다음 시도 :

열의 수를 서브 세트 축 (1)에 사용

col1 col2 col3 col4 
0 a  1  2  3 
1 b  NaN  NaN  6 
2 c  NaN  8  9 
3 d  NaN  11  12 
4 e  13  14  15 
5 f  17  18  19 
6 g  21 2 2  23 

부울 배열 :

난 놀 작은 dataframe 만들어
df.loc[: , a1] 

오류 메시지가 표시됩니다.

IndexingError: Unalignable boolean Series key provided

부울 배열을 적용하여 loc()과 함께 여러 열을 부분 집합으로 만들 수 있습니까?

답변

2

당신은 values에 의해 numpy arraySeries 변환이 필요합니다

print (df.loc[: , a1.values]) 
    col1 col3 
0 a 2.0 
1 b NaN 
2 c 8.0 
3 d 11.0 
4 e 14.0 
5 f 18.0 
6 g 2.0 

또는에 Series의 정렬 index에 대한 df.columns에 의해 index을 추가 할 필요가 columnsDataFrame의 :

a1 = pd.Series([True, False, True, False], index=df.columns) 
print (df.loc[: , a1]) 
    col1 col3 
0 a 2.0 
1 b NaN 
2 c 8.0 
3 d 11.0 
4 e 14.0 
5 f 18.0 
6 g 2.0