将 XML 转换为 SEVERAL 数据帧时,如何以动态方式命名这些 dfs?
when converting XML to SEVERAL dataframes, how to name these dfs in a dynamic way?
我的代码在底部
"parse_xml"函数可以将xml文件转为df,例如"df=parse_XML("example.xml", lst_level2_tags)" works
但是因为我想保存到几个 dfs 所以我想要像 df_ first_level_tag, etc
这样的名字
当我 运行 底部代码时,我得到一个错误 "f'df_{first_level_tag}'=parse_XML("example.xml", lst_level2_tags)
^
语法错误:无法分配给文字“
我也尝试了 .format 方法而不是 f-string 但它也没有用
至少有30个dfs要保存,我不想一个一个地做。尽管 pandas 外 Python 中的 f-string 总是成功,但
这里的问题是关于 f-string/format 方法还是我的代码有其他逻辑问题?
如果您需要,parse_xml 函数直接来自此 link
the function definition
for first_level_tag in first_level_tags:
lst_level2_tags = []
for subchild in root[0]:
lst_level2_tags.append(subchild.tag)
f'df_{first_level_tag}'=parse_XML("example.xml", lst_level2_tags)
在这种情况下,最好将它们放入字典中:
dfs = {}
for first_level_tag in first_level_tags:
lst_level2_tags = []
for subchild in root[0]:
lst_level2_tags.append(subchild.tag)
dfs[first_level_tag] = parse_XML("example.xml", lst_level2_tags)
您的 f 字符串在结构上没有任何问题,但您通常无法在 Python 中获得动态变量名而不做一些丑陋的事情。通常,当您需要类似的东西时,将值存储在字典中最终会成为一种更简洁的解决方案。
以这种方式使用它们的一个优点是,如果您想对它们中的每一个做一些事情,您可以稍后迭代字典。例如,如果你想将它们中的每一个都作为 CSV 文件写入磁盘,并使用与标签匹配的名称,你可以这样做:
for key, df in dfs.items():
df.to_csv(f'{key}.csv')
您也可以单独引用它们(因此,如果有一个名为 a
的标签,您可以稍后在您的代码中引用 dfs['a']
来访问它)。
我的代码在底部
"parse_xml"函数可以将xml文件转为df,例如"df=parse_XML("example.xml", lst_level2_tags)" works 但是因为我想保存到几个 dfs 所以我想要像 df_ first_level_tag, etc
这样的名字当我 运行 底部代码时,我得到一个错误 "f'df_{first_level_tag}'=parse_XML("example.xml", lst_level2_tags) ^ 语法错误:无法分配给文字“
我也尝试了 .format 方法而不是 f-string 但它也没有用 至少有30个dfs要保存,我不想一个一个地做。尽管 pandas 外 Python 中的 f-string 总是成功,但
这里的问题是关于 f-string/format 方法还是我的代码有其他逻辑问题?
如果您需要,parse_xml 函数直接来自此 link the function definition
for first_level_tag in first_level_tags:
lst_level2_tags = []
for subchild in root[0]:
lst_level2_tags.append(subchild.tag)
f'df_{first_level_tag}'=parse_XML("example.xml", lst_level2_tags)
在这种情况下,最好将它们放入字典中:
dfs = {}
for first_level_tag in first_level_tags:
lst_level2_tags = []
for subchild in root[0]:
lst_level2_tags.append(subchild.tag)
dfs[first_level_tag] = parse_XML("example.xml", lst_level2_tags)
您的 f 字符串在结构上没有任何问题,但您通常无法在 Python 中获得动态变量名而不做一些丑陋的事情。通常,当您需要类似的东西时,将值存储在字典中最终会成为一种更简洁的解决方案。
以这种方式使用它们的一个优点是,如果您想对它们中的每一个做一些事情,您可以稍后迭代字典。例如,如果你想将它们中的每一个都作为 CSV 文件写入磁盘,并使用与标签匹配的名称,你可以这样做:
for key, df in dfs.items():
df.to_csv(f'{key}.csv')
您也可以单独引用它们(因此,如果有一个名为 a
的标签,您可以稍后在您的代码中引用 dfs['a']
来访问它)。