Python 如何将字典转换为这种格式的数据帧?
我有一本字典Python 如何将字典转换为这种格式的数据帧?,python,python-3.x,pandas,dictionary,Python,Python 3.x,Pandas,Dictionary,我有一本字典 dic = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']} 然后我想转换表单的df 这种转换重复了很多次。请详细说明一种有效的方法,好吗?您应该迭代您的dict并创建所需的数据 将熊猫作为pd导入 dic={'a':['b','c','d'],'x':['y','z','w']} 列=(‘节点’、‘根’) data=[(节点,根)表示根,dic中的节点。items()表示节点中的节点] d=pd.DataFrame(列=列,数据=数据)
dic = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']}
然后我想转换表单的df
这种转换重复了很多次。请详细说明一种有效的方法,好吗?您应该迭代您的
dict
并创建所需的数据
将熊猫作为pd导入
dic={'a':['b','c','d'],'x':['y','z','w']}
列=(‘节点’、‘根’)
data=[(节点,根)表示根,dic中的节点。items()表示节点中的节点]
d=pd.DataFrame(列=列,数据=数据)
印刷品(d)
输出:
node root
0 b a
1 c a
2 d a
3 y x
4 z x
5 w x
使用melt
d = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']}
df = pd.DataFrame(d).melt(var_name='root',value_name='node')
print(df)
root node
0 a b
1 a c
2 a d
3 x y
4 x z
5 x w
你可以:
dic={'a':['b','c','d'],'x':['y','z','w']}
df=pd.数据帧(dic)
df.melt(value\u name='node',var\u name='root')
编辑:要处理不均匀的节点长度,请使用索引方向显式创建原始的
df
,这将把不均匀的节点填充为None
。然后dropna
在末尾:
dic={'a':['b','c','d'],'x':['y','z','w','t']}
df=pd.DataFrame.from_dict(dic,orient='index').T
df.melt(value\u name='node',var\u name='root').dropna()
您给数据帧一个
.csv
扩展名,并将其命名为test.csv
,那么当您试图编写代码来解决问题时发生了什么?
root node
0 a b
1 a c
2 a d
3 x y
4 x z
5 x w
root node
0 a b
1 a c
2 a d
4 x y
5 x z
6 x w
7 x t
df = pd.DataFrame.from_dict(dic)
df.to_csv('test.csv', index=False)