【问题标题】:Python - count distinct rows from a dataframePython - 从数据框中计算不同的行
【发布时间】:2017-05-08 10:53:02
【问题描述】:

我有一个格式如下的数据框:

UserId, CurrentUserLocationId, RegisteredUserLocationId, RestorauntId

我想统计密钥(UserId, CurrentUserLocationId, RegisteredUserLocationId)的唯一出现次数

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

我尝试使用groupby(['col1', 'col2', 'col3']).size() 但这会计算所有记录。我将使用代码的数据集有十亿条记录。

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

【问题讨论】:

    标签: python database pandas numpy anaconda


    【解决方案1】:
    DataFrame.drop_duplicates()
    DataFrame.count
    

    如有必要,在删除重复数据之前复制数据帧,并且在制作重复数据帧时仅在您希望成为唯一组合的列中调用。

    【讨论】:

    • drop_duplicates 在十亿条记录上执行需要多长时间?
    • 很难说,重复的删除应该是相当有效的(对于有序集合,当值与之前的删除相同时)但是任何大的......很难说。
    猜你喜欢
    • 2013-09-27
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多