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

如何使用pandas将DataFrame列匹配值转换为按值降序的分组字典

解决方案

以下代码可直接实现需求,5000条数据量下运行无性能压力:

完整代码示例

import pandas as pd

# 构造示例数据(实际使用时替换为你自己的DataFrame即可)
df = pd.DataFrame({
    'v_id': [222, 222, 222, 33, 555, 555, 555],
    'r_id': [1, 2, 9, 1, 1, 5, 7],
    'count': [1000, 1500, 600, 7000, 6000, 60, 2300]
})

# 核心处理逻辑
# 1. 按v_id分组、每组内按count降序排序
df_sorted = df.sort_values(['v_id', 'count'], ascending=[True, False])
# 2. 分组聚合生成有序字典
result = df_sorted.groupby('v_id').apply(
    lambda x: dict(zip(x['r_id'], x['count']))
).reset_index(name='data')

输出结果验证

最终得到的result结构如下:

v_iddata
33{1: 7000}
222{2: 1500, 1: 1000, 9: 600}
555{1: 6000, 7: 2300, 5: 60}

注意事项

Python 3.7及以上版本默认支持字典有序,如果你使用的是更低版本,可将代码中的dict替换为collections.OrderedDict,即可保证字典按count降序排列。


内容的提问来源于stack exchange,提问作者Shouhaddo Paul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:15:00