您可以使用列表理解与DataFrame
构造(python 3
):
d = {'identifier1':[('date1','value1'),('date2','value2')],
'identifier2':[('date1','value1'),('date3','value3'),('date4','value4')]}
L = [(k, *t) for k, v in d.items() for t in v]
df = pd.DataFrame(L, columns=['identifier','date','val'])
print (df)
identifier date val
0 identifier1 date1 value1
1 identifier1 date2 value2
2 identifier2 date1 value1
3 identifier2 date3 value3
4 identifier2 date4 value4
对于python 2
使用:
L = [(k, t[0], t[1]) for k, v in d.items() for t in v]
df = pd.DataFrame(L, columns=['identifier','date','val'])
print (df)
identifier date val
0 identifier1 date1 value1
1 identifier1 date2 value2
2 identifier2 date1 value1
3 identifier2 date3 value3
4 identifier2 date4 value4
在Python 3+这只作品,对不对? – Mathias711
我想是的。我也为python 2添加了解决方案。 – jezrael