You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两组2列计数结果合并为键值对数据集并计算占比降序排序

Python实现方案

核心逻辑

  • 合并日期、星期两组计数列表
  • 计算所有计数的总和用于占比换算
  • 按计数值降序排序后格式化输出三列内容(键、计数、占比)

可运行代码

# 定义原始计数数据,注意星期值需为字符串类型
date_counts = [(22, 8), (24, 1), (23, 1)]
weekday_counts = [("Friday", 2), ("Monday", 4), ("Thursday", 2), ("Tuesday", 1), ("Wednesday", 1)]

# 合并两组数据
merged = date_counts + weekday_counts
# 计算总计数
total_cnt = sum(cnt for _, cnt in merged)
# 按计数值降序排序
sorted_result = sorted(merged, key=lambda x: -x[1])

# 格式化打印结果
print(f"{'键':<10} {'计数':<4} {'占比'}")
print("-"*22)
for key, cnt in sorted_result:
    ratio = cnt / total_cnt * 100
    print(f"{str(key):<10} {cnt:<4} {ratio:.1f}%")

输出效果

键         计数  占比
----------------------
22         8    40.0%
Monday     4    20.0%
Friday     2    10.0%
Thursday   2    10.0%
24         1    5.0%
23         1    5.0%
Tuesday    1    5.0%
Wednesday  1    5.0%

拓展:导出为CSV文件

如果需要将结果保存为本地文件,可追加以下代码:

import csv
with open("统计结果.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["键", "计数", "占比"])
    for key, cnt in sorted_result:
        writer.writerow([key, cnt, f"{cnt/total_cnt*100:.1f}%"])

内容的提问来源于stack exchange,提问作者Matt Lightbourn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:15:05