2016-07-12 3 views
3

저는 h2o R 패키지에서 꽤 오래 동안 일했지만 최근에 파이썬 패키지로 옮겨야했습니다.H2OFrame에서 행을 삭제하는 방법은 무엇입니까?

H2OFrame은 팬더 DataFrame 개체처럼 작동하도록 설계되었습니다. 그러나

df.drop([0,1,2], axis=0, inplace=True) 

내가 H2OFrame와 동일한 작업을 수행하는 방법을 알아낼 수 없습니다 : 나는 일부 행을 삭제하려는 경우에는, 내가 팬더에 ... 극복하기 위해 관리하지 않은 몇 가지 장애물이있다 :

frame.drop([0,1,2], axis=0) 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-30-0eff75c48e35> in <module>() 
----> frame.drop([0,1,2], axis=0) 

TypeError: drop() got an unexpected keyword argument 'axis' 

드롭 방법은 컬럼 만, 그래서 분명히 확실한 방법이 작동하지 않는 그들의 github 소스 문서

:

def drop(self, i): 
    """Drop a column from the current H2OFrame. 

이는 DR하는 방법입니다 op 행은 H2OFrame에서?

답변

4

현재 H2OFrame.drop 메소드는 이것을 지원하지 않지만 복수 행 (및 여러 열) 삭제에 대한 지원을 추가하려면 ticket을 추가했습니다. 한편

, 당신은 인덱스 행의 서브 세트를 할 수 있습니다 색인 목록, [1,3]이 주문한 것을

import h2o 
h2o.init(nthreads = -1) 

hf = h2o.H2OFrame([[1,3],[4,5],[3,0],[5,5]]) # 4 rows x 2 columns 
hf2 = hf[[1,3],:] # Keep some of the rows by passing an index 

참고. 대신 [3,1]을 전달하면 오류가 발생합니다. H2O는 행의 순서를 바꾸지 않으며, 이는이를 알려주는 방법입니다. 순서가 잘못된 색인 목록이있는 경우 먼저 sorted 함수를 감싸 주면됩니다.

hf2 = hf[sorted([3,3]),:] 

마지막으로 당신이 원하는 경우, 다음과 같이, 그것은 원래의 프레임 이름으로 새로운 서브 세트 프레임을 재 할당하는 것도 괜찮습니다 :이 이후

hf = hf[[1,3],:] 
+0

감정적 인 배열처럼 조각 내기 위해 내 마음을 넘어선 일도 없었습니다. 감사! – Tgsmith61591

+0

'axis' 인수를 사용하는 것도 가능합니다 :'df = df.drop ([0,1,2], axis = 0)'. 그러나'inplace'는 –

0

지금은 코멘트를 강조하고 싶었다 지원되는 인덱스를 삭제하는 방법을 말한다 :

df = df.drop([0,1,2], axis=0)

곳 축 = 1 (기본값), 다음이 열을 떨어 뜨리면, axis = 0 인 경우는, 행을 드롭합니다.

drop(index, axis=1)

인덱스 컬럼 인덱스 열 이름 또는 드롭 행 인덱스들의리스트이다

; 또는 하나의 열을 이름별로 드롭하는 문자열. 인덱스에 의해 단일의 열을 삭제하는 int

관련 문제