MS Access版本Python melt
MS Access version of a Python melt
假设 table 这样组织:
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 中的新 table。到目前为止,我已经在 Access 中查找有关 "melting" 的文档,但我不知道 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 行定义数据类型和字段名称。有 50 SELECT 行的限制。
然后,如果您希望它提交到新的 table,请将此查询用作 SELECT INTO
操作的源 SQL,或者如果 table 已经存在,则 INSERT SELECT
行动。
假设 table 这样组织:
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 中的新 table。到目前为止,我已经在 Access 中查找有关 "melting" 的文档,但我不知道 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 行定义数据类型和字段名称。有 50 SELECT 行的限制。
然后,如果您希望它提交到新的 table,请将此查询用作 SELECT INTO
操作的源 SQL,或者如果 table 已经存在,则 INSERT SELECT
行动。