假设我有字典d:
d = dict(A =[1,2], B=[1,2,3,4])
print d
{'A': [1, 2], 'B': [1, 2, 3, 4]}
我想创建一个熊猫df
,其两个col分别标记为nodeid
和rowid
,如下所示:
nodeid rowid
A 1
A 2
B 1
B 2
B 3
B 4
我发现的所有从dict创建熊猫df的示例都将dict键作为col的名称,然后行条目是该键是否具有特定值,如果该节点具有NaN
没有那个价值。
答案 0 :(得分:4)
尝试:
df = pd.DataFrame([(k, v) for (k, l) in d.items() for v in l],
columns=['nodeid', 'rowid'])
它给出:
nodeid rowid
0 A 1
1 A 2
2 B 1
3 B 2
4 B 3
5 B 4
答案 1 :(得分:2)
尝试一下:
df = pd.DataFrame([[k,d[k][i]] for k in d for i in range(len(d[k]))], columns= ['nodeid', 'rowid'])
输出:
nodeid rowid
0 A 1
1 A 2
2 B 1
3 B 2
4 B 3
5 B 4
答案 2 :(得分:0)
单向
pd.Series(d).apply(pd.Series).stack().reset_index(level=0).\
rename(columns={'level_0':'nodeid',0:'rowid'})
nodeid rowid
0 A 1.0
1 A 2.0
0 B 1.0
1 B 2.0
2 B 3.0
3 B 4.0