[英]Create dataframe from dictionary of list with variable length
我有一個列表的字典,就像 -
from collections import defaultdict
defaultdict(list,
{'row1': ['Affinity'],
'row2': ['Ahmc',
'Garfield',
'Medical Center'],
'row3': ['Alamance','Macbeth'],
'row4': [],
'row5': ['Mayday']})
我想將其轉換為數據框。 輸出應該看起來像 -
ID SYN1 SYN2 SYN3 SYN4 SYN5
row1 Affinity
row2 Ahmc Garfield Medical Center
row3 Alamance Macbeth
row4
row5 Mayday
collections.defaultdict
是dict
的子類。
所以你可以使用pd.DataFrame.from_dict
:
res = pd.DataFrame.from_dict(dd, orient='index')
res.columns = [f'SYN{i+1}' for i in res]
print(res)
SYN1 SYN2 SYN3
row1 Affinity None None
row2 Ahmc Garfield Medical Center
row3 Alamance Macbeth None
row4 None None None
row5 Mayday None None
是的,你可以使用Series
df=pd.Series(d).apply(pd.Series).fillna('')
Out[55]:
0 1 2
row1 Affinity
row2 Ahmc Garfield Medical Center
row3 Alamance Macbeth
row4
row5 Mayday
或者來自dataframe構造函數
df=pd.DataFrame(data=list(d.values()),index=d.keys())
Out[64]:
0 1 2
row1 Affinity None None
row2 Ahmc Garfield Medical Center
row3 Alamance Macbeth None
row4 None None None
row5 Mayday None None
然后我們創建列
df.columns='SYN'+(df.columns+1).astype(str)
df
Out[67]:
SYN1 SYN2 SYN3
row1 Affinity None None
row2 Ahmc Garfield Medical Center
row3 Alamance Macbeth None
row4 None None None
row5 Mayday None None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.