问题描述
使用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)
)
但是,如果数据透视表运行,那么对于大型表,我希望它会更高效 在非联接数据表上,并仅将字符串值应用于结果显示。
=> 在使用时是否有一种方便的方法来考虑外键关系
熊猫DataFrame
和pivot_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}}
另一个带有更多列的示例:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)