Python 如何从字典创建两列数据框
我有一本python字典Python 如何从字典创建两列数据框,python,dictionary,pandas,Python,Dictionary,Pandas,我有一本python字典 dict = {'Name':value,'Name2':value2,'Name3':value3} 我想从那里创建一个数据帧,但如果我尝试这样做: df = pd.DataFrame(dict) dict1 = {'Name':1,'Name2':2,'Name3':3} df = pd.DataFrame([[key,value] for key,value in dict1.iteritems()], columns=["Name","Value"
dict = {'Name':value,'Name2':value2,'Name3':value3}
我想从那里创建一个数据帧,但如果我尝试这样做:
df = pd.DataFrame(dict)
dict1 = {'Name':1,'Name2':2,'Name3':3}
df = pd.DataFrame([[key,value] for key,value in dict1.iteritems()],
columns=["Name","Value"])
我有两个问题,第一个问题是字典中的并非所有项都具有相同的值,第二个问题也是更重要的一个问题,我需要这种格式的一列两列数据帧:
名称1值名称1值
名称1值
名称2值
名称2值
名称3值
名称3值
名称3值
名称3值 而不是: 名称1[值,值,值] 名称2[值,值] 名称3[值,值,值] 给予 为支持字典值中的列表而编辑: 如果
value
,value2
和value3
是列表:
import pandas as pd
value = [1,2,3]
value2 = [4,5,6]
value3 = [7,8,9]
mydict = {"Name1" : value, "Name2" : value2, "Name3" : value3 }
mydict
是{'Name1':[1,2,3],'Name2':[4,5,6],'Name3':[7,8,9]}
然后,为字典中的每个值分配一个键:
mylist = [(key, x) for key,val in mydict.iteritems() for x in val]
现在,我们有了mylist
is
[('Name2', 4),
('Name2', 5),
('Name2', 6),
('Name3', 7),
('Name3', 8),
('Name3', 9),
('Name1', 1),
('Name1', 2),
('Name1', 3)]
最后,转换为数据帧
df = pd.DataFrame(mylist, columns=['Name', 'Values'])
结果是
df=
Name Values
0 Name2 4
1 Name2 5
2 Name2 6
3 Name3 7
4 Name3 8
5 Name3 9
6 Name1 1
7 Name1 2
8 Name1 3
你可以试试这个:
df = pd.DataFrame(dict)
dict1 = {'Name':1,'Name2':2,'Name3':3}
df = pd.DataFrame([[key,value] for key,value in dict1.iteritems()],
columns=["Name","Value"])
这里的预期输出是什么?您是在从dict(dict)查找pd.DataFrame.吗?另外,不要命名dict变量
dict
这会影响dict
类型是否可以有与值一样多的行?您的意思是说字典中有许多键值对?是的,但dict中不需要,只是在数据框中可以有与值一样多的行吗?