假设一个表这样组织:
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是否正是我所需要的。
在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 INTO
操作SQL的源,或者如果表已经存在,则使用INSERT操作。