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

如何将循环生成的列名不同的矩阵存入外部空DataFrame字典?

解决分组生成不同列名DataFrame的存储问题

完整解决方案代码

import pandas as pd

# 示例数据集
myData = pd.DataFrame({
    'dataset': ['cat', 'cat', 'cat', 'cat', 'dog', 'dog', 'dog', 'dog', 'bird', 'bird', 'bird', 'bird'], 
    'category_1': ['orange', 'orange', 'white', 'white', 'black', 'brown', 'brown', 'black', 'red', 'green', 'red', 'green'], 
    'category_2': ['this_cat', 'that_cat', 'this_cat', 'that_cat', 'this_dog', 'that_dog', 'this_dog', 'that_dog', 'this_bird', 'that_bird', 'this_bird', 'that_bird'],
    'values': ['1', '8', '9', '2', '5', '4', '3', '10', '0', '2', '7', '9']
})

# 将values列转为数值类型(原数据是字符串,无法正确计算均值)
myData['values'] = myData['values'].astype(float)

# 初始化存储字典,用dataset的唯一值作为键
output_dfs = {k: pd.DataFrame() for k in myData['dataset'].unique()}

# 分组处理并存储到字典
for dataset_name, group_data in myData.groupby('dataset'):
    # 按category_1和category_2分组计算均值
    grouped_mean = group_data.groupby(['category_1', 'category_2'])['values'].mean().reset_index()
    # 透视转换为矩阵
    matrix = grouped_mean.pivot(index='category_2', columns='category_1', values='values').reset_index()
    # 添加dataset列,保留分组标识
    matrix['dataset'] = dataset_name
    # 调整列顺序,把dataset放在最前面
    matrix = matrix[['dataset'] + [col for col in matrix.columns if col != 'dataset']]
    # 存入字典
    output_dfs[dataset_name] = matrix

# 验证结果:访问每个DataFrame
print("bird的DataFrame:")
print(output_dfs['bird'])
print("\ncat的DataFrame:")
print(output_dfs['cat'])
print("\ndog的DataFrame:")
print(output_dfs['dog'])

关键改动说明

  • 修正数据类型:原values列是字符串格式,必须转为数值类型(float/int)才能正确计算均值,否则会报错或得到错误结果。
  • 初始化字典:用myData['dataset'].unique()获取唯一分组名,避免重复键,确保每个分组对应一个字典项。
  • 添加分组标识列:在生成的matrix中加入dataset列,保留分组信息,符合你期望的输出格式。
  • 调整列顺序:把dataset列移到最前面,和你给出的示例输出结构一致。

输出结果示例

运行后,output_dfs['bird']会输出:

dataset category_2  green  red
0    bird  that_bird    5.5  NaN
1    bird  this_bird    NaN  3.5

(注:你示例中green值14.5为计算错误,原数据bird的green对应值是2和9,均值为(2+9)/2=5.5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:40:37