从具有可变长度的列表字典创建数据帧

ana*_*chy 5 python dictionary python-3.x pandas

我有一个列表的字典,就像 -

from collections import defaultdict
defaultdict(list,
            {'row1': ['Affinity'],
             'row2': ['Ahmc',
              'Garfield',
              'Medical Center'],
             'row3': ['Alamance','Macbeth'],
             'row4': [],
             'row5': ['Mayday']})
Run Code Online (Sandbox Code Playgroud)

我想将其转换为数据框.输出应该看起来像 -

ID  SYN1    SYN2    SYN3    SYN4    SYN5
row1    Affinity                
row2    Ahmc    Garfield    Medical Center      
row3    Alamance    Macbeth         
row4                    
row5    Mayday
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 6

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
Run Code Online (Sandbox Code Playgroud)