问题描述
我们有多个 xml 文件 (xmlFileN.xml) 以层次结构排列。每个 xml 文件由 3 个标签索引/标识:L1x、L2x、L3x。
L10/def/xmlFileN.xml -> mandatory
L10/L20/def/xmlFileN.xml -> mandatory if L3x is not present
L10/L21/def/xmlFileN.xml
L10/L21/L30/xmlFileN.xml -> not mandatory
L10/L21/L31/xmlFileN.xml
L11/def/xmlFileN.xml
L11/L20/def/xmlFileN.xml
L11/L21/def/xmlFileN.xml
L11/L21/L30/xmlFileN.xml
L11/L21/L31/xmlFileN.xml
从最里面的 xml 中选取值,如果最里面没有标签,则检查它的根,依此类推,直到 L1x/def/xmlFileN.xml
理想情况下,我们希望所有内部 xmlFiles 都为空(通过提供出色的默认值)
问题:为了实现这一点,我们希望了解有多少标签在不同级别发生变化。
第一种方法:蛮力。将所有 xml Tag-Val 对读入 python 嵌套字典。然后通过手动交换嵌套字典的级别,计算每个标签的唯一值的数量:
Unique_values[L1x] = a
Unique_values[L1N][L2x] = b
Unique_values[L1N][:][L3x] = c
这我可以改进 bu 创建数据帧的嵌套字典(以 L1 和 L2 作为键),以 xml 标签为索引,L3x 作为列,类似地,另一个以 L1 和 L3 为键的数据帧嵌套字典。 现在,我正在将所有标签读入一个数据帧,然后选择与前两个字典相对应的内容。
dataframe columns:
<row_index>,<L1>,<L2>,<L3>,<tag>,<val>
是否有任何更简单的方法来生成(除了为每个 L1/L2/L3 组合生成数据?)唯一计数并发布到具有以下列的单个 Excel 表中:
tag
#changes across all L1*
changes across L1*/L2*/L30
changes in L1*/L2*/L31
changes in L1*/L2*/L32
L1_name
changes in L1/L2*/L30
changes in L1/L2*/L31
changes in L1/L2*/L32
total changes in L1/*/*
我正在寻找某种分组或一些类似的操作,并可以选择计算每组唯一值的数量并将所有输出放入一个 Excel 表中(现在我正在将数据框一个一个地组合起来,寻找更紧凑、更惯用的方式)。
如果需要更多说明,请告诉我。
[编辑] 添加新图像来解释我当前的方法 蓝色背景为原始数据。 浅粉色是 [L1][][L3] 的唯一值(收集给定 L1 的 L3x 中的所有值) 灰色背景是 [def]((收集所有 L1x 的默认值)和 [][*][L3](收集 L3x 中的所有值,忽略 L1 和 L2)的唯一值。 砖红色表是我的预期输出。
如果我能得到值计数,那就太好了,但即使我能得到不同值的数量而不是值计数,也足够了。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)