我有一个非常传统的Excel电子表格,第一列是工作订单号,后面的列是员工姓名。每个员工姓名下面是他们在每个工作订单上花费的时间。见下文:
目标不仅是在httpcaller中使用属性列的值,而且还使用属性名(在本例中是雇员名)。不换位/旋转.因此,理论上,httpCaller中的请求URL将具有以下格式:
https://***基址***/addcost?data=“work order id”:@value(工单id),“employee”:“属性命名“小时”:属性值}
我还找到了一个函数来提取属性名。文本编辑器只允许我提取属性的值。我不确定如何做到这一点。
任何建议都非常感谢。
我有一个旧的非常规Excel工作表,需要重组。见下文:
第一列是字段名,后面的每一列都是路由号。理想的,我想将其转换为以下内容:
关于如何将每N行/列作为数据透视轴有什么建议吗??
我有下表。
标签 | 区号 | 计数 |
一 | 一千零一 | 十四 |
一 | 一千零二 | 三 |
一 | 一千零三 | 二 |
一 | 一百零一 | 八十八 |
一 | 一百零二 | 九十一 |
乙 | 一千零一 | 六十四 |
乙 | 一千零二 | 二 |
乙 | 一千零四 | 一 |
乙 | 一百零一 | 二百六十八 |
乙 | 一百零二 | 一百二十一 |
C | 一千零一 | 三十七 |
C | 一千零二 | 四 |
C | 一千零四 | 二 |
C | 一百零一 | 四百九十三 |
C | 一百零二 | 十七 |
我想转动桌子。所以我得到了下面的结果。
里杰标签 | 一 | 乙 | C |
一百零一 | 八十八 | 二百六十八 | 四百九十三 |
一百零二 | 九十一 | 一百二十一 | 十七 |
一千零一 | 十四 | 六十四 | 三十七 |
一千零二 | 三 | 二 | 四 |
一千零三 | 二 | ||
一千零四 | 一 | 二 |
我试过了attribute投票人(也是attribute调查人),但我不能让它起作用。我不明白我做错了什么。
希望有人能帮我解决这个问题!
谢谢!
我正在基于ID字段透视表,以便所有诊断代码都基于ID进行透视和分组。下面是一个我试图实现的源表和最终表的示例。什么样的变压器才是合适的?
我在按照我想组装的方式组装一个记录集时遇到了一些困难。
我目前的功能结构如下
属性A | 属性B | 属性C |
组值1 | 钥匙 | 价值 |
组值1 | KEY2 | 价值 |
组值1 | 密钥3 | 价值 |
组值2 | 钥匙 | 价值 |
组值2 | KEY2 | 价值 |
组值2 | 密钥3 | 价值 |
其中每一行都是一个特征(本例中的第一行除外,它们是属性名)。
我想在属性A上创建一个新的功能分组,属性B保存这个新特性的属性名称,属性C保存这些属性的值。我已经研究了属性透视器和聚合器来实现这一点;但我似乎不知道如何解决这个问题。对我遗漏的东西有什么想法吗?在我的数据中,我可以保证属性B在属性A的唯一值之间的唯一性。
也许我要的是不可能的。我不确定。
大家好,我有这张桌子:
尝试简化它,这样我就可以做到:
非常感谢您的帮助。
奥玛尔
数据可视化工具和仪表盘有助于从原始数据生成有用的智能。自动化数据准备任务是利用这些应用程序的第一步。了解如何重组属性和属性值,以及如何在FME中转换数据和使用数据透视表。然后,数据可以加载到业务智能工具(如Tableau)中。
学习从电子表格中提取坐标数据,然后在将数据加载到Tableau之前清理数据。
我们将从包含人口统计信息的大型Excel文档开始。数据将被转置以重组,并选择感兴趣的统计数据
在这个例子中,我们演示了使用FME变压器构造一个数据透视表。举例说明了使用attributePointVoter变压器和statisticscaleculator变压器的两种选择。
你好,
我使用FME使用一个模板(现有的Excel表)生成一个透视表,这个模板工作得很好。唯一的问题是,我似乎无法控制列(带解释文本)的位置。在原始Excel表中,它位于开始(A列),但在FME生成的Excel文件中,它位于工作表的最后一列。有可能改变吗?
基督教的
你好,
我会尽量解释清楚。我正在使用带有XQuery的JSontemplater从csv文件中插入属性值。
我的JSON的结构是:
“狙击”:“人口”:115900,“活产”:1305,“死亡”:1234,“年龄0-17”:23400,“B百分比”:9.7,“家庭”:50900,“nocarorvanpercent”:21.5,“不合格百分比”:25,“45岁百分比”:20,“totalpopulation”:“year”:“2015年我的”,“sourcelink”:“http://www.ons.gov.uk”,“columns”:[“所有人”,“总男性人口”,“女性总人口”],“thisarea”:“name”:“gedling”,“数据”:[115900,56400,59500],“comparators”:[“name”:“诺丁汉郡”,“数据”:[805800,396700,409200],“name”:“诺丁汉和诺丁汉郡”,“数据”:[1124700,557800,567000],“name”:“英格兰”,“数据”:[5478630,27029300,27757000]]我的JSontemplater根表达式是:
“截图”:FME:过程特征(“截图”),“totalPopulation”:fme:过程特性(“totalPop”)
我的snips子模板表达式是:
“人口”:fm:get attribute(“人口”),“活产”:fm:get attribute(“活产”),“死亡”:fm:get attribute(“死亡”),“年龄0-17”:fm:get attribute(“年龄0-17”),“bmepercent”:fm:get attribute(“bmepercent”),“家庭”:fm:get attribute(“家庭”),“nocarorvanpercent”:fm:get attribute(“nocarorvanpercent”),“noformlqualificationpercent”:fme:get attribute(“noformlqualificationsPercent”),“aged65plusPercent”:fme:get attribute(“aged65plusPercent”);
我的totalpop子模板表达式是:
“年”:fm:get attribute(“年”),“sourcelink”:fm:get attribute(“sourcelink”),“columns”:[fm:get list attribute(“columns.col0”)],“thisarea”:fm:process features(“thisarea”)
我的ThisArea子模板是:
“name”:fm:get attribute(“name”),“data”:[fm:get list attribute(“columns.data”)]
到目前为止,我已经完成了大部分JSontemplate,但是现在我必须构建需要进入totalpop子模板的比较器部分.这就是我被困的地方…
保存比较器数据的csv数据如下:
盖德灵 | 诺丁汉郡 | 诺丁汉和诺丁汉郡 | 英格兰 | |
全体人员(2015) | 十一万五千九百 | 八十万五千八百 | 一百一十二万四千七百 | 五千四百七十八万六千三百 |
男性总人口(2015年) | 五万六千四百 | 三十九万六千七百 | 五十五万七千八百 | 二千七百零二万九千三百 |
女性总人口 | 五万九千五百 | 四十万九千二百 | 五十六万七千 | 二千七百七十五万七千 |
正如你所看到的,我几乎需要两个属性值,一个叫名字,有三个记录,诺丁汉郡,诺丁汉和诺丁汉郡,英国。另一个属性将被称为数据,并将值存储为列表。最重要的是,我需要排除第一列(Gedling),因为这是焦点区域,并且已经在“ThisArea”子模板中定义。
解决方案需要是动态的,所以如果我引入一个具有更多区域的阅读器,如病房级别,它需要像上面那样创建一个JSON,但随后在比较器部分的列表中列出所有的病房和数据值。
我想这可能是一个高级的FME用户的圣诞节拼图??
你好,
我正试图将一个包含5K行和115列数据的表转换为一个长表。我有5列要修复,然后大约100列,我想取列名并将其放入另一列,然后将该列的值放入一个名为regs的字段中。
我附上了一个样本Excel文件与我想做的。
谢谢
作记号
你好,
请看下图:
我在表1和表2中有一百万条记录。希望根据某些条件与相关数据合并到输出格式。我试过测试仪,FeatureMerger测试过滤器等有人能提出最好的方法吗?
你好,
我有一张有两列的桌子:
页眉 | 数据 |
页眉 | 数据 |
我需要将信息写入需要格式化为以下格式的TXT文件:
页眉 |
数据 |
页眉 |
数据 |
标题都是唯一的。
任何解决方案都是好的-但是会尽可能多地了解信息,尤其是使用python时。
谢谢,
希瑟
我正在尝试创建一个包含以下内容的表:
我有三列:办公室,时间和平均销售额。现在我需要做的是将时间值设置为列。这是每5分钟,所以总共有287列。这些列的值必须是平均列的值。例子:
旧结构
平均办公时间
商店1 00:00 188
商店1 00:05 176
商店2 00:00 195
仓库2 00:05 76
…
…
新结构:
办公室00:00 00:05……
商店1 188176
商店2 195 76
我目前正在使用FME桌面2015。
我希望有人能帮助我。我知道使用属性过滤器和属性创建者是可能的,但正如我所说,共有287列,这是一个有点工作,以附加和填写变压器。
事先谢谢!杰利
本文描述了使用FME操作表格数据可用的不同工具。这可以包括:换位表格(表格旋转)。汇总统计和汇总,透视表和交叉表。这些操作在Excel等电子表格应用程序中很常见。
如果您的目标格式是MS Excel,然后,您可能需要使用一些FME Excel编写器功能来写入模板文件。模板文件可以包括预定义的透视表,图表,命名范围等。请参阅Excel读写器教程。
示例中使用的工作区:
换位2015.fmwt
转置高级2015.fmwt
PIVOT-ATTRIBUTEPIVOTER2015.fmwt
Pivot-StatisticsCalculator2015.fmwt
转置表涉及到将表的列转换为行——在大多数情况下,不需要任何数据操作或汇总。例如:
在FME中,attributeexploder和aggregator transformers的组合允许您转换表。attributeExploder转换器将一行中的属性值作为名称/值对,并为每个属性创建单独的特性。通过将这些特性聚合在一起,可以将表的列重新组合为行。
例如,如果一个表中有两个记录:
对Excel表执行转置的示例工作区如下所示:
以下是工作区的要点:
名称/值对表示列或属性名(Attr_名称)和属性或单元格值(Attr_值)。
聚合器的输出是初始表中每列的一个新功能,它具有一个包含各种单元格值的列表属性。
如何将此列表映射到输出?对于MS Excel输出,最简单的方法是使用attributeCreator或attributerNameer将其重命名为列字母;A,B,C,等。请参见示例工作区。
棘手的部分是按正确的顺序编写行。attributeExploder可以扰乱属性的顺序,因此可以使用排序器转换器对旋转表的行进行排序。
最终结果是原始表的转置。
第二个转置示例-示例:transseadvanced.fmw-使用相同的主体。再一次,这个属性Exploder和聚合器变压器被用来分裂然后重新组合特征。在这个例子中,工作流程中比较棘手的部分是获取功能——头部,亚搏在线数据,总计–按正确顺序输出。对工作区进行注释,以描述每个变压器的功能。
您可以使用统计计算器.StatisticsCalculator还可用于为一系列功能生成累积和-请参阅文章:计算运行总数或累积总数.有关使用统计计算器参见FME变压器帮助。
这个聚合器也可用于生成简单的统计信息。如果特征具有面积几何,则聚合器将计算加权平均值。
这个属性投票人在尝试创建透视表或交叉表时,应该是第一个选择。这有效地允许您在FME中创建透视表,类似于Excel中的透视表。
StatisticsCalculator Transformer能够为特性的组(类别)生成统计信息,而不是为所有特性生成统计信息,从而有效地创建一个数据透视。
下面是一个带有透视结果的Excel电子表格的示例-Excel文件也附加到本文的Pivot_attributePivoter.fmwt fme模板中。“观察”数据已由“区域”和“潜在”属性汇总。
以上:Excel中的源表和示例透视表。
如果输出格式为Excel,然后,您可能需要考虑将FME Excel编写器与模板文件一起使用。
以下各节描述了如何使用FME实现枢轴。
这个属性投票人Transformer是创建透视表或交叉表的好选择。使用attributepivoter比使用statisticscaler方法有两个优点。
attribute选民自动生成摘要统计信息。也,创建透视表时,有时很难预测输出数据模式。创建透视表时,结果具有从原始属性生成的新属性列,例如在上面的Excel示例中的“观察到的平均值”。属性投票人补充道动态属性以便于编写数据透视表。
attributePointer的一个缺点是,在当前版本的FME中,您只能分析一个属性。如果您需要对多个属性进行分析,那么您可以考虑使用StatisticsCalculator方法——请参见下一节。
下面显示了使用attributePointVoter的工作区示例。
上面:attributePivoter Transformer生成透视表-例子:Pivot_attributePivoter.fmwt.
对于属性投票人的配置,请从变压器文件.在上面的例子中,pivot属性是观察.数据汇总依据区域和潜在的(行分组依据)。行组的顺序很重要,因为这会影响摘要的创建方式。按属性顺序分组的行在“选择按项目分组的行”对话框中定义:
结果如下所示(突出显示已手动添加):
您还可以使用group columns by参数来创建更多的列数据透视,在这种情况下,使用潜在的属性结果:
下面显示的工作区使用统计计算器Transformer通过按区域和潜力对特征进行第一次分组,为观察到的属性创建统计信息。然后,新的统计特性按区域和潜力排序,并输出到一个csv文件。生成的csv文件具有与excel透视表相同的所有属性/字段。
以上:StatisticScaleCalculator Transformer生成数据透视表
在工作区中,使用了两个统计量计算器。第一个统计量计算器生成每个区域和潜力的统计数据,第二个生成整个数据集的汇总统计数据——总计。潜在属性的分类汇总需要第三个统计量计算器。结果如下:
以上:由FME编写的表(在Excel中查看)类似于Excel透视表。
棘手的部分是输出特性(分拣机变压器)的排序以及输出模式的定义。
你应该使用哪一种方法?attributepioter或statisticscalculator?
从属性投票人开始。其优点是:
属性投票的主要缺点是,在当前版本的FME中(本文编写于2015年)。attribute选民将只为一个属性生成统计信息。因此,如果您需要多个属性的统计信息,您可能需要恢复到更复杂的属性,但是多才多艺,统计量计算器方法。
然而,如果输出格式为MS Excel,然后,您可能应该考虑将Excel编写器与模板文件一起使用,并在Excel中构建数据透视表。这种方法在FME和Excel中都是最好的!
注:本文是用FME 2013创建的。当前的文章表格数据的处理是可用的.
通常需要重新安排电子表格数据的组织以适应各种用途。一种常见的重组是将行转换为列,或者调换桌子。使用FME,您可以使用attributeExploder Transformer对表格数据执行此操作和其他更复杂的操作,如下所述:
转置电子表格涉及到将表的列转换为行,例如:
attributeExploder Transformer允许您转换表格数据,以及在FME中进行更高级的表格操作。此转换器获取行的属性值,并为每个名称/值对创建一个新功能。通过聚合这些特性,您可以将表的列重新组合为行。有关使用attributeExploder执行数据透视的详细信息,请参见http://fmepedia.亚搏在线safe.com/articles/how_to/pivoting-between-columns-lists-and-records2.对Excel表执行转置的示例工作区如下所示:
第一步是将表的行发送到属性分解器,并选择分解类型到特征。这将为表中的每个单元格创建一个新功能,这些单元格的属性与列或属性名(_attr_name)和属性值或单元格值(_attr_value)相对应。
我们希望将同一列中的所有功能重新组合为一个功能,或行,为了做到这一点,我们使用一个聚合转换器,并将其设置为按“属性名”分组,我们还通过在“属性累积”下的“列表名称”字段中为列表指定一个名称,将其设置为保持列表中的输入属性。在运行聚合器之前,最好使用测试人员或其他一些过滤器来除去不需要的属性。
聚合器的输出现在是初始表中每一列的一个特性,其列表属性包含各种单元格值,我们想将这些列表元素转换为值,所以我们使用一个attributeranamer转换器。我们几乎完成了,但首先我们添加了一个计数器和排序器,以确保行的顺序是正确的。
最终结果是原始表的转置版本。
还可以使用attributeExploder Transformer执行更复杂的表格操作。在本例中,我们将使用attributeExploder重新格式化一些表格数据,如下所示:
此示例需要更复杂的重新格式化,因此实现此转换的工作区使用的变压器比前一个示例多:
这个工作区中的转换器也是attributeexploder,它分解初始表的行并为每个单元格创建新功能,这次我们将“keep attributes”参数设置为yes,因为稍后我们将按新行的年份属性重新分组。接下来是一个测试仪,这样就消除了不需要的格式属性。
接下来,我们使用聚合转换器将特性重新组合成新行,这一次,我们不仅按属性名(属性名)分组,还按年份分组,因为我们想把每年的行分开。我们现在可以添加一个属性创建者来创建新的属性,第一个属性将在原始表的标题行中的每个单元格的值后附加一年,从而创建具有年和月属性的属性。这还将创建一些附加了年份的“物种”和“总计”值,稍后我们需要对这些值进行筛选和修改。
我们为表中所有唯一的单独行添加了属性,为它们提供了通用名称R1、R2,等。,最后,我们将创建一个具有月份和年份的新属性,以便在以后使用我们的属性。这还将附加一个常量字符串“011231”,我们将使用它作为dateformater转换器的一个技巧,将“总计”行放在正确的位置。
测试筛选器用于将具有降水类型的标题行和常规月份行中的年度合计行分开。对于头值,我们只希望其中一个作为输出表的第一行,我们将有来自聚合器的3个输出,所以我们用一个采样变压器过滤掉除第一个特征外的所有东西,后跟attributeValueMapper以重命名该属性,使其不再追加年份。对于总计行,我们希望将这些行放在每年的月度数据下面,要做到这一点,我们必须有某种方式对行进行排序。在这种情况下,我们可以使用日期格式转换器将日期字段转换为自Unix Epoch以来的秒数(用于比较日期的一种常见方法),这将为我们提供一种将日期与排序器进行比较的方法。
我们在这里使用的技巧是获取附加到日期属性的字符串,并告诉日期格式化程序将12解释为月份,将30解释为日期,以确保年度总计在当年的12月行之后。我们还将通过另一个日期格式化程序运行每个月的行,但这次我们将把01解释为日期,并从值的前缀中提取月份。现在,dateformater的输出可以用排序器变压器进行数字排序。
分拣机的最终输出将我们所有的新行按我们想要的方式排序,并准备好用csv编写器编写,请记住取消选中“输出字段名”选项,这样我们就不会在头中包含带有虚拟属性名R1、R2等的名称。