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

如何按DataFrame的col1分组并生成组内行的字典列表?

实现Pandas按列分组并将行转为字典列表

步骤1:构建原始DataFrame

先复现你提供的数据集:

import pandas as pd

df = pd.DataFrame({
    'col1': [1, 1, 2, 2],
    'col2': [3, 3, 4, 4],
    'col3': [5, 6, 5, 6]
})

方法1:重命名列后利用to_dict('records')生成结果

这种方法更简洁,先把原列名col2、col3改成目标键名col_2、col_3,再通过分组+apply批量生成字典列表:

# 重命名列匹配目标键名
df_renamed = df.rename(columns={'col2': 'col_2', 'col3': 'col_3'})

# 分组并生成字典列表
result = df_renamed.groupby('col1')\
                   .apply(lambda group: group[['col_2', 'col_3']].to_dict('records'))\
                   .reset_index(name='rows_group')

方法2:手动构造字典(无需重命名列)

如果不想修改原始列名,可在分组逻辑里手动遍历行构造字典:

result = df.groupby('col1')\
           .apply(lambda group: [
               {'col_2': row['col2'], 'col_3': row['col3']} 
               for _, row in group.iterrows()
           ])\
           .reset_index(name='rows_group')

验证结果

执行上述任意一种方法后,打印result即可得到目标格式:

print(result)
# 输出:
#    col1                                         rows_group
# 0     1  [{'col_2': 3, 'col_3': 5}, {'col_2': 3, 'col_3': 6}]
# 1     2  [{'col_2': 4, 'col_3': 5}, {'col_2': 4, 'col_3': 6}]

内容的提问来源于stack exchange,提问作者wedrano de carvalho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:35:01