0
字典的關鍵是日期,值是不同長度從字典中創建一個數據幀
例如列表,字典是
dict = { '2017-09-01' : [A B] , '2017-09-02' : [C D E] }
我想要的是像
一個數據幀date Message
2017-09-01 A
2017-09-01 B
2017-09-02 C
2017-09-02 D
2017-09-02 E
字典的關鍵是日期,值是不同長度從字典中創建一個數據幀
例如列表,字典是
dict = { '2017-09-01' : [A B] , '2017-09-02' : [C D E] }
我想要的是像
一個數據幀date Message
2017-09-01 A
2017-09-01 B
2017-09-02 C
2017-09-02 D
2017-09-02 E
您可以使用列表理解來壓扁字典,然後從中構建數據框:
d = { '2017-09-01' : ['A', 'B'] , '2017-09-02' : ['C', 'D', 'E'] }
pd.DataFrame(
[(k, val) for k, vals in d.items() for val in vals],
columns=['date', 'message']
)
# date message
#0 2017-09-01 A
#1 2017-09-01 B
#2 2017-09-02 C
#3 2017-09-02 D
#4 2017-09-02 E
或用pandas.stack
更長的解決方案:
(pd.DataFrame.from_dict(d, 'index').stack()
.rename('message')
.rename_axis(('date', ''))
.reset_index(level=0)
.reset_index(drop=True))
# date message
#0 2017-09-01 A
#1 2017-09-01 B
#2 2017-09-02 C
#3 2017-09-02 D
#4 2017-09-02 E