作者apple2 (apple)
看板Python
標題[問題] 字典轉dataframe
時間Fri Jul 12 21:15:42 2019
請問各位大大,
我用python 跑apriori 算法:
程式回傳關聯規則的資料結構長這樣:
{(1,): ((3,), 1.0), (2,): ((5,), 1.0), (5,): ((2,), 1.0), (2, 3): ((5,),
1.0), (3, 5): ((2,), 1.0)}
意思是:
1->3 信心度:1
2->5 信心度:1
5->2 信心度:1
2,3 ->5 信心度:1
3,5->2 信心度:1
{(1,): ((3,), 1.0), (2,): ((5,), 1.0), (5,): ((2,), 1.0), (2, 3): ((5,),
1.0), (3, 5): ((2,), 1.0)}
請問有什麼方法可以讓上面字典的資料結構變成dataframe 如下:
前件 後件 信心度
1 3 1
2 5 1
5 2 1
2,3 5 1
3,5 2 1
謝謝各位!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.7.161 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1562937348.A.790.html
→ x264: _data = [[key[0], val[0][0], val[1]] for key, val in dat 07/13 00:24
→ x264: a.items()] 07/13 00:24
→ x264: cols = ["前件", "後件", "信心度"] 07/13 00:24
→ x264: df = df.DataFrame(_data, columns=cols) 07/13 00:25
→ x264: df = pd.DataFrame(_data, columns=cols) 07/13 00:25
→ x264: df=df那行打錯看下面那行,簡單來說就是用list comprehensio 07/13 00:27
→ x264: n取出你要的資料讓每筆資料變成一個list(到時候會變成datafr 07/13 00:27
→ x264: ame的一個row) 再來cols就是照你要的欄位名稱而已,最後再整 07/13 00:27
→ x264: 個丟到dataframe裡面就行,沒實際測過但是應該可以用 07/13 00:27
→ apple2: 謝謝版友回覆! 07/13 13:29