Python 在框架中,使列表中的列条目分解其项,以便它们分别垂直列出
我已经为此工作了几个小时,试图找出如何制作这个jsonPython 在框架中,使列表中的列条目分解其项,以便它们分别垂直列出,python,pandas,Python,Pandas,我已经为此工作了几个小时,试图找出如何制作这个json { “方法”:“静态”, “类型”:“IEEE_8023AD”, “dns_搜索_域”:[ “lab.local1”, “lab.local2”, “lab.local3” ], “dns_服务器”:[ "11.12.200.1", "11.12.200.2", "11.12.200.3" ] }您可以将设置索引传递给数据帧构造函数 pd.DataFrame(d).set_index(['method','type']) Out[229]
{
“方法”:“静态”,
“类型”:“IEEE_8023AD”,
“dns_搜索_域”:[
“lab.local1”,
“lab.local2”,
“lab.local3”
],
“dns_服务器”:[
"11.12.200.1",
"11.12.200.2",
"11.12.200.3"
]
}
您可以将设置索引传递给数据帧构造函数
pd.DataFrame(d).set_index(['method','type'])
Out[229]:
dns_search_domains dns_servers
method type
STATIC IEEE_8023AD lab.local1 11.12.200.1
IEEE_8023AD lab.local2 11.12.200.2
IEEE_8023AD lab.local3 11.12.200.3
谢谢你的帮助 不幸的是,如果我决定将另一列数据添加到“dns_搜索_域”和“dns_服务器”中,其列表的长度与列的长度不同,则会出现此错误
ValueError: arrays must all be same length
此时,我选择使用pd.Series()手动构建每个列,然后使用pd.concat()连接它们。除非有人有任何其他建议,谢谢你的帮助,朋友们 如果使用熊猫0.25+,你可以在
dns\u搜索\u域
和dns\u服务器
栏上使用explode
。我忘了说,非常感谢您的帮助。pd.concat([df[[['method','type','dns\u search\u domains']].explode('dns\u search\u domains'),df.dns\u servers.explode()],axis=1)
?谢谢您的帮助。我添加了另一列,其中包含这个emtpy数组“floating_ip_ranges”:[]但现在得到了这个错误值error:数组的长度必须相同:(。