2017-09-18 64 views

回答

1

爲了我的理解,從你的問題中,你想要在列上進行操作而不會丟失它們的初始狀態。下面的例子可以說明。假設我們有一個電影的數據集SFrame SF: -

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 
. 
. 
... 

在上面SFrame,用戶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,也許合併休息的列到使用groupby()方法找到的SFrame,或者您也可以使用join找到SFrame,但不保持更改原始SFrame的正確操作。

另外請注意,多個實體在一列像SFrame在actors,方法,可以讓一切變得簡單,使用stack方法使用groupby()對數據進行操作之前。我希望有所幫助。