python数据帧将dict列拆分为多列

2024-07-07 08:20:40 发布

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

该列如下所示:

0[{'id':18,'name':'plastic'},{'id':10769,'n。。。你知道吗

1[{'id':18,'name':'戏剧'},{'id':10749,'n。。。你知道吗

2[{'id':35,'name':'Comedy'},{'id':27,'nam。。。你知道吗

3[{'id':18,'名字':'戏剧'}]

4[{'id':99,'name':'documental'}]

5[{id':18,'名字':'戏剧'},{id':28,'名字。。。你知道吗

6[{'id':10749,'name':'roman'},{'id':18。。。你知道吗

我希望看到每个类型的ID列都有bool值:

索引id=18 id=10769 id=35 id=27。。。你知道吗

0 1 1 0 0。。。你知道吗

1 10 0 0。。。你知道吗

2 0 0 1 1。。。你知道吗

3 1 0 0 0。。。你知道吗

。。。你知道吗


Tags: nameid类型名字boolroman戏剧comedy
1条回答
网友
1楼 · 发布于 2024-07-07 08:20:40

使用列表理解和展平,然后使用数据帧构造函数:

df = pd.DataFrame({'col':[[{'id': 18, 'name': 'Drama'}, {'id': 10769}], 
                          [{'id': 99, 'name': 'Documentary'}]]})

print (type(df.loc[0, 'col']))
<class 'list'>

df = pd.DataFrame([y for x in df['col'] for y in x])
print (df)
      id         name
0     18        Drama
1  10769          NaN
2     99  Documentary

#alternative
#df = pd.concat([pd.DataFrame(x) for x in df['col']], ignore_index=True)

相关问题 更多 >