Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将字典转换为这种格式的数据帧?_Python_Python 3.x_Pandas_Dictionary - Fatal编程技术网

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)