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

2024-04-20 06:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本列表字典

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

我想把它转换成一个数据帧。 输出应该是-

^{pr2}$

Tags: fromimport列表字典collectionslistmedicalcenter
2条回答

collections.defaultdictdict的子类。在

所以您只需使用^{}

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                          

或从数据帧构造函数

^{pr2}$

然后我们创建列

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

相关问题 更多 >