从字典中高效地构建数据帧

2024-06-07 14:42:28 发布

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

我有大量的数据,我已经处理并生成了一个字典。现在我想从这个字典创建一个数据帧。字典的值是元组的列表。我需要从这些值中找出构建数据帧列的唯一值:

d = {'0001': [('skiing',0.789),('snow',0.65),('winter',0.56)],'0002': [('drama', 0.89),('comedy', 0.678),('action',-0.42) ('winter',-0.12),('kids',0.12)],'0003': [('action', 0.89),('funny', 0.58),('sports',0.12)],'0004': [('dark', 0.89),('Mystery', 0.678),('crime',0.12), ('adult',-0.423)],'0005': [('cartoon', -0.89),('comedy', 0.678),('action',0.12)],'0006': [('drama', -0.49),('funny', 0.378),('Suspense',0.12), ('Thriller',0.78)],'0007': [('dark', 0.79),('Mystery', 0.88),('crime',0.32), ('adult',-0.423)]}

(字典大小接近80万条记录)

我在字典中反复搜索,找出唯一的标题:

^{pr2}$

我相信这个过程需要很长时间。使用dict也可能是一个问题,因为它要慢得多。此外,当我用raw构造数据帧时,它进一步减慢了这个过程:

df = pd.DataFrame(columns=col_headers, index=entities)
for k in d:
    df.loc[k] = pd.Series(d[k])
df.fillna(0.0, axis=1)

如何加快此过程以缩短处理时间?在


Tags: 数据df字典过程actionfunnypd元组
1条回答
网友
1楼 · 发布于 2024-06-07 14:42:28

@ajcr almost gets it.

但是,您可能还需要将内部键值对展开到字典中。在

df = pd.DataFrame.from_dict({ k: dict(v) for k,v in d.items() },  
                            orient="index").fillna(0)

然后,如果您想统一列标题的样式:

^{pr2}$

enter image description here

如果你想完全疯掉,你可以对列进行排序:

df = df.sort(axis=1)

enter image description here

相关问题 更多 >

    热门问题