首页 > 解决方案 > Python 融化的 MS Access 版本

问题描述

假设这样组织的表:

Row |  School | LocationCode2011 |  LocationCode2012 | LocationCode2013 

001      ABC        1000A                1000B                2000X
002      DEF        2000A                2000B                4000X

打算将其更改为:

Row |  School |    Location        | Value

001      ABC    LocationCode2011     1000A
001      ABC    LocationCode2012     1000B
001      ABC    LocationCode2013     2000X
002      DEF    LocationCode2011     2000A
002      DEF    LocationCode2012     2000B
002      DEF    LocationCode2013     4000X

Python 是我的首选语言,但我需要在 MS Access 中实现这一点。在Python中我会做

df2 = df.melt(id_vars=["Row","School"], value_vars=["LocationCode2011", "LocationCode2012", "LocationCode2013""], var_name="Location",val_name="Value")

并接收存储在 df2 中的新表。到目前为止,我已经在 Access 中寻找有关“熔化”的文档,但我不知道 Transform 是否是我所需要的。

标签: ms-accesstransformmelt

解决方案


在 Access 中,可以使用 UNION 查询将数据重新排列为标准化结构。

SELECT Row, School, LocationCode2011 AS Value, "LocationCode2011" AS Location FROM tablename
UNION SELECT Row, School, LocationCode2012, "LocationCode2012" FROM tablename
UNION SELECT Row, School, LocationCode2013, "LocationCode2013" FROM tablename;

第一个 SELECT 行定义数据类型和字段名称。SELECT 行的限制为 50 条。

然后,如果您希望将其提交到新表,请将此查询用作SELECT INTO操作 SQL 的源,或者如果表已存在,则使用INSERT SELECT操作。


推荐阅读