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

将DataFrame按id_ind分组转为DataFrame字典并还原原DataFrame

Pandas 按个体分组生成DataFrame字典及还原方案

1. 按id_ind分组生成DataFrame字典

如果之前得到的是numpy值组成的字典,大概率是误用了提取数组的操作(比如x.values或x.to_numpy())。正确的做法是直接遍历groupby的结果,将每个分组的完整DataFrame存入字典:

import pandas as pd

# 示例DataFrame
data = {
    'id_ind': [1,1,2,2,3],
    'col1': ['a','b','c','d','e'],
    'col2': [10,20,30,40,50]
}
df = pd.DataFrame(data)

# 生成以个体编号为键的DataFrame字典
df_dict = {group_id: group_df for group_id, group_df in df.groupby('id_ind')}

验证:打印df_dict[1]会得到id_ind为1的完整子DataFrame,而非numpy数组。

2. 将字典还原为原DataFrame

直接用pd.concat()合并字典中所有子DataFrame即可,如需和原DataFrame顺序一致,可补充排序和索引重置:

# 合并所有子DataFrame并还原
restored_df = pd.concat(df_dict.values(), axis=0)
# 可选:按id_ind排序并重置索引,匹配原数据结构
restored_df = restored_df.sort_values('id_ind').reset_index(drop=True)

这样得到的restored_df和原df结构、内容完全一致(忽略索引差异的话,不加reset_index也可)。

内容的提问来源于stack exchange,提问作者Álvaro A. Gutiérrez-Vargas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:01:09