Lui*_*uez 5 python dictionary pandas
我有一本 python 字典
dict = {'Name':value,'Name2':value2,'Name3':value3}
Run Code Online (Sandbox Code Playgroud)
我想从那里创建一个 DataFrame,但如果我尝试这个:
df = pd.DataFrame(dict)
Run Code Online (Sandbox Code Playgroud)
我有两个问题,第一个是字典中并非所有项目都具有相同的值,第二个也是更重要的一个,我想要这种格式的一两列数据框:
名1值
名称1值
名称1值
名称2值
名称2值
NAME3值
NAME3值
NAME3值
NAME3值
而不是:
名称1 [值,值,值]
名称2 [值,值]
Name3 [值,值,值]
value = 1
value2 = 2
value3 = 3
mydict = {'Name':value,'Name2':value2,'Name3':value3}
df = pd.DataFrame(mydict.items(), columns=['Name', 'Values'])
Run Code Online (Sandbox Code Playgroud)
给
Name Values
0 Name2 2
1 Name 1
2 Name3 3
Run Code Online (Sandbox Code Playgroud)
编辑以支持字典值中的列表:
如果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 }
Run Code Online (Sandbox Code Playgroud)
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]
Run Code Online (Sandbox Code Playgroud)
现在,我们有mylist
IS
[('Name2', 4),
('Name2', 5),
('Name2', 6),
('Name3', 7),
('Name3', 8),
('Name3', 9),
('Name1', 1),
('Name1', 2),
('Name1', 3)]
Run Code Online (Sandbox Code Playgroud)
最后,转换为数据帧
df = pd.DataFrame(mylist, columns=['Name', 'Values'])
Run Code Online (Sandbox Code Playgroud)
结果是
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3843 次 |
最近记录: |