Python 如何考虑(熊猫)透视表中的外键关系?

Python 如何考虑(熊猫)透视表中的外键关系?,python,pandas,pivot-table,powerpivot,Python,Pandas,Pivot Table,Powerpivot,有了Exycel的PowerPivot,我可以 a) 创建一个由多个连接的表组成的数据模型(参见下面的示例) b) 基于该模型创建透视表 对于显示,透视表不使用id(=整数)值,而是使用相应的字符串值作为行/列标题 有了熊猫,我可以 a) 加载并连接那些相关的表 b) 基于联接的表创建透视表 pivot_table = pandas.pivot_table( joined_table, index=["scenario_name"], #entries to

有了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)
)
但是,对于大型表,如果pivot_表运行,我希望它会更高效 在非联接数据表上,并仅为结果显示应用字符串值

=>强>在使用时有方便的考虑外键关系的方法吗? 熊猫

DataFrame
pivot\u表

我期待着类似的事情

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",          #entries to aggregate and show as cells
    aggfunc=numpy.sum,       #aggregation function(s)
)
=>如果没有,是否有一些pandas的替代库可以将相关表作为数据透视表的源处理?

小示例表结构:





scenario\u id
表格
数据
表格
id
上的点
scenario

表的
param\u id
数据
点在表的
id
param

另一个包含更多列的示例:


照常透视并替换索引/列名的值?是。我不想重新发明轮子,希望已经存在一些解决方案。否则,我将不得不手动调整结果数据帧的多索引和标题,在相应的表中查找ID的含义。
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