2017-09-18 11 views
0

열에 연산자를 사용하여 groupby를 수행하려는 sframe이 있습니다. 그러나 키 열이 지정된 sframe 만 반환합니다. 그럼에도 불구하고 일부 열에서 작업을 수행 할 수 있지만 그럼에도 불구하고 모든 열을 유지할 수 있습니까?Graphlab Sframes - groupby의 모든 열을 유지하는 방법

답변

1

귀하의 질문에 가장 잘 이해할 수 있도록 초기 상태를 잃지 않고 열에서 작업을 수행하려고합니다. 아래의 예가 그 예일 수 있습니다. 우리가 영화 SFrame 김포 등의 데이터 세트가 있다고 가정 : - 위 SFrame에서

movieId userId actors rating 
102  10  A,B,C  5 
204  8   B,C,D  4 
333  3   K,L,M  3 
204  11  P,Q,R  1 
423  3   K,B,C  4  
533  31  K,A,C  2  
633  3   P,L,A  3 
. 
. 
... 

, 사용자 3은 사용자의 등급을 작동 할 수 있도록 다음

rating_stats = sf.groupby(key_columns='userId',operations {'mean_rating': agg.MEAN('rating')}) 

, 당신이 좋아하는 수 있으므로 의미, 여러 점을 받았습니다 이미 존재하는 열에 영향을 미치지 않고 SFrame에 발견 된 열을 추가합니다. 즉, SFrame을 유지할 수 있습니다.

sf['mean_rating'] = rating_stats['mean_rating'] 

sf가 영향을받지 않고 새로운 열을 추가 한 것을 알 수 있습니다.

groupby() 방법을 사용하는 경우 귀하의 질문에 대한 대답은 귀하가 특정 작업을 수행하는 곳에서 별도의 SFrame을 갖는 것이 더 좋을 수 있으며 원본 SFrame을 추가로 사용하거나 추가 할 수 있습니다 검색된 SFrame에 groupby() 방법을 사용하거나 발견 된 SFrame에 join을 사용할 수도 있지만 원래 SFrame을 계속 변경하는 것은 바람직하지 않습니다. 또한

는 SFrame에서의 actors 쉬운 일이 데이터에서 작동하도록 groupby()을 사용하기 전에 stack 방법을 사용 할 수 있습니다 방법과 같은 열에서 여러 엔티티 점에 유의. 도움이되기를 바랍니다.