首页 > 解决方案 > 如何提取一组字典中的第一项?

问题描述

请看截图...

我正在尝试创建另一列,拉动“流派”列的第一个元素(即第一个是动画,第二个是冒险,第三个是浪漫,依此类推......)

有人可以帮忙吗?

截屏

标签: pythonpandasdataframedictionaryfor-loop

解决方案


您可以从字典或数据框中拆分数据。在此代码中,我在拆分之前将列转换为列表。

import pandas as pd


### from dictionary

dd = { 'genres':[
       [{'id':16,'name':'Animation'},{'id':26,'name':'ChicFlick'}],
       [{'id':12,'name':'Adventure'},{'id':22,'name':'Horror'}],
       [{'id':18,'name':'Romance'},{'id':28,'name':'Crime'}],
       ]}
       
dd['genres2'] = [x[0]['name'] for x in dd['genres']]

print(dd)


### from dataframe

dd = { 'genres':[
       [{'id':16,'name':'Animation'},{'id':26,'name':'ChicFlick'}],
       [{'id':12,'name':'Adventure'},{'id':22,'name':'Horror'}],
       [{'id':18,'name':'Romance'},{'id':28,'name':'Crime'}],
       ]}
       
df = pd.DataFrame(dd)

df['genres2'] = [x[0]['name'] for x in df['genres'].to_list()]

print(df.to_string(index=False))

输出

{'genres': 
     [[{'id': 16, 'name': 'Animation'}, {'id': 26, 'name': 'ChicFlick'}], 
     [{'id': 12, 'name': 'Adventure'}, {'id': 22, 'name': 'Horror'}], 
     [{'id': 18, 'name': 'Romance'}, {'id': 28, 'name': 'Crime'}]], 
 'genres2': ['Animation', 'Adventure', 'Romance']}

                                                             genres    genres2
 [{'id': 16, 'name': 'Animation'}, {'id': 26, 'name': 'ChicFlick'}]  Animation
    [{'id': 12, 'name': 'Adventure'}, {'id': 22, 'name': 'Horror'}]  Adventure
       [{'id': 18, 'name': 'Romance'}, {'id': 28, 'name': 'Crime'}]    Romance

推荐阅读