2016-12-15 2 views
1

팬더의 DataFrame을 가지고 있으며 데이터 프레임에서 작업을 수행 할 때 시리즈가 반환됩니다. 이 시리즈를 사용하여 어떻게 일치하는 레코드를 선택할 수 있습니까?시리즈 값에 DataFrame 데이터베이스 선택

지금 DataFrame에 열을 추가하고 데이터 프레임에 대해 쿼리를 수행하여 열을 삭제합니다. 그래도이 솔루션이 마음에 들지 않으므로 더 나은 솔루션을 얻을 수 있기를 바랍니다. 인덱스 항목 1은 dataframe 객체에서 항목 1 일치 있도록

data = [[1,2,3], [1,3,4], [3,4,5]] 
columns = ['a', 'b', 'c'] 
df = pd.DataFrame(data, columns=columns) 
series = df.myoperation() 
df['myoperation'] = series 
res = df[df['myoperation'] == True] 
del res['myoperation'] 

series 객체는 1-1 일치를 생성합니다.

위의 코드는 해킹 코드이지만 데이터 프레임에이 간단한 예제보다 많은 열이나 데이터가 많이 포함되어 있으면 두렵습니다. 느려질 것입니다.

seriesdfdf 같은 인덱스와 같은 길이 Series 부울 경우 당신이

답변

2

난 당신이 사용할 수있을 것 같아요 감사 -이 boolean indexing라고 :

series = pd.Series([True, False, True], index=df.index) 
res = df[series] 
print (res) 
    a b c 
0 1 2 3 
2 3 4 5 

을 항상 boolean 목록과 함께 작동 숫자 배열 만 가능하며 길이는 df과 같아야합니다.

L = [True, False, True] 
res = df[L] 
print (res) 
    a b c 
0 1 2 3 
2 3 4 5 

arr = np.array([True, False, True]) 
res = df[arr] 
print (res) 
    a b c 
0 1 2 3 
2 3 4 5 
관련 문제