我是一本蟒蛇字典
dict = {'Name':value,'Name2':value2,'Name3':value3}
我想从那里创建一个DataFrame,但如果我试试这个:
df = pd.DataFrame(dict)
我有两个问题,第一个是字典中并非所有项目都具有相同的值,第二个是更重要的一个,我想要这种格式的一个两列数据框:
Name1值
Name1值
Name1值
Name2值
Name2值
名称3值
名称3值
名称3值
Name3值
而不是:
Name1 [value,value,value]
Name2 [value,value]
Name3 [value,value,value]
答案 0 :(得分:3)
value = 1
value2 = 2
value3 = 3
mydict = {'Name':value,'Name2':value2,'Name3':value3}
df = pd.DataFrame(mydict.items(), columns=['Name', 'Values'])
给出
Name Values
0 Name2 2
1 Name 1
2 Name3 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
是
[('Name2', 4),
('Name2', 5),
('Name2', 6),
('Name3', 7),
('Name3', 8),
('Name3', 9),
('Name1', 1),
('Name1', 2),
('Name1', 3)]
最后,转换为dataframe
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
答案 1 :(得分:1)
你可以试试这个:
dict1 = {'Name':1,'Name2':2,'Name3':3}
df = pd.DataFrame([[key,value] for key,value in dict1.iteritems()],
columns=["Name","Value"])