如何在熊猫pivot_tables中考虑外键关系?

问题描述

使用Exycel中的PowerPivot,我可以

a)创建一个由几个连接的表组成的数据模型(请参见下面的示例)

b)基于该模型创建数据透视表

为便于显示,数据透视表不使用id(=整数)值,而是将相应的字符串值用作行/列标题

我可以用熊猫

a)加载并加入那些相关表 b)基于联接表创建数据透视表

pivot_table = pandas.pivot_table(
    joined_table,index=["scenario_name"],#entries to show as row headers
    columns='param_name',#entries to show as column headers
    values='value',#entries to aggregate and show as cells
    aggfunc=numpy.sum,#aggregation function(s)
)

但是,如果数据透视表运行,那么对于大型表,我希望它会更高效 在非联接数据表上,并仅将字符串值应用于结果显示

=> 在使用时是否有一种方便的方法来考虑外键关系 熊猫DataFramepivot_table吗?

我希望有类似的东西

pivot_table = pandas.pivot_table(
    {"data": data_table,"scenario": scenario_table,"param": param_table
    },index=["scenario:name"],#entries to show as row headers
    columns="param:name",#entries to show as column headers
    values="data:value",#aggregation function(s)
)

=> 如果没有,是否有熊猫库的替代库可以将相关表作为数据透视表的源?

小示例表结构:


table "data"
id scenario_id param_id value
1  1           1        100
2  1           2        200

table "scenario"
id name
1  reference
2  best_case

table "param"
id name
1  solar
2  wind

scenario_id的{​​{1}}指向表data的{​​{1}}

id的{​​{1}}指向表scenario的{​​{1}}

一个带有更多列的示例:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)