[英]create pandas df from dictionary but in a special format
假設我有字典d:
d = dict(A =[1,2], B=[1,2,3,4])
print d
{'A': [1, 2], 'B': [1, 2, 3, 4]}
我想創建一個帶有兩個cols的pandas df
,分別標記為nodeid
和rowid
,如下所示:
nodeid rowid
A 1
A 2
B 1
B 2
B 3
B 4
我發現的所有示例均由dict創建一個pandas df給出dict關鍵字作為col的名稱,然后行條目是該關鍵字是否具有特定值,如果該節點不具有該值,則輸入NaN
。
嘗試:
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
嘗試這個 :
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
單程
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.