2017-05-08 105 views
0

我有以下格式的数据帧计数重复行:Python从一个数据帧

UserId, CurrentUserLocationId, RegisteredUserLocationId, RestorauntId 

我要计数的键(UserId, CurrentUserLocationId, RegisteredUserLocationId)

例如独特外观的量,如果该对(1, 1, 1)出现一次,我希望停止计数并将其包含在最终结果中。所以出现的每个独特的对我只需要计数一次。

我试着做的是使用groupby(['col1', 'col2', 'col3']).size()但是这个计数所有的记录。数据集I将使用具有十亿条记录的代码。

有没有内置的方法来完成我想要做的事情?或者更确切地说,做这种计数的最快方法是什么?

回答

2
DataFrame.drop_duplicates() 
DataFrame.count 

如果有必要在丢弃重复项之前复制数据框,并且只在需要作为唯一组合的列中调用重复数据帧时调用该数据框。

+0

drop_duplicates需要多长时间执行十亿条记录? – Hydroxis

+0

很难说,重复删除应该是相当有效的(对于有序集合,当值与之前的删除相同时),但是任何大的......很难说。 – TLOwater