当前位置: 代码网 > it编程>前端脚本>Python > 如何用Python高效统计并排序大型商品数据集?

如何用Python高效统计并排序大型商品数据集?

2025年03月30日 Python 我要评论
利用python高效处理和排序大型商品数据集本文演示如何将一个包含商品信息的列表高效地转换为另一个包含商品统计信息并按特定规则排序的列表。原始数据包含商品标题、颜色、尺码和数量,目标是统计相同标题、颜

如何用python高效统计并排序大型商品数据集?

利用python高效处理和排序大型商品数据集

本文演示如何将一个包含商品信息的列表高效地转换为另一个包含商品统计信息并按特定规则排序的列表。原始数据包含商品标题、颜色、尺码和数量,目标是统计相同标题、颜色和尺码的商品数量,并计算每个标题下所有商品的总数量,最终结果按总数量降序排列。

示例原始数据:

data = [
    ('连衣裙', '白色', 's', 1),
    ('连衣裙', '白色', 's', 1),
    ('连衣裙', '黑色', 'm', 1),
    ('裤子', '白色', 's', 1),
]
登录后复制

目标输出格式:

result = [
    ('连衣裙', '白色', 's', 2, 3),
    ('连衣裙', '黑色', 'm', 1, 3),
    ('裤子', '白色', 's', 1, 1),
]
登录后复制

其中,最后一个数字代表该标题下所有商品的总数量。为了高效处理大型数据集,我们将使用python的collections.counter对象进行计数。

以下代码实现了这一功能:

from collections import counter

data = [
    ('连衣裙', '白色', 's', 1),
    ('连衣裙', '白色', 's', 1),
    ('连衣裙', '黑色', 'm', 1),
    ('裤子', '白色', 's', 1),
]

# 使用counter统计每个(标题, 颜色, 尺码)组合的数量
item_counts = counter(tuple(item[:-1]) for item in data)

# 使用counter统计每个标题的总数量
title_totals = counter(item[0] for item in data)

# 创建结果列表,包含标题、颜色、尺码、数量和标题总数量
result = [
    (*item, count, title_totals[item[0]])
    for item, count in item_counts.items()
]

# 按标题总数量降序排序,然后按标题、颜色、尺码升序排序
result.sort(key=lambda x: (-x[4], x[0], x[1], x[2]))

print(result)
登录后复制

这段代码首先利用counter高效地统计每个商品组合和每个标题的出现次数。然后,它构造一个新的列表,包含所有必要的信息,并根据总数量进行排序。这种方法充分利用了counter的效率,能够轻松处理包含数千条甚至更多记录的大型数据集。

以上就是如何用python高效统计并排序大型商品数据集?的详细内容,更多请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com