2017-03-08 44 views
0

我有一个数据框,其中一列包含名为cast_and_crew的json对象。
我需要将key'person_name'的值存储在单独的数据框中。
包含cast_and_crew json的数据框在this 中给出,请参考此图片。 click here如何使用python从json对象中提取值?

The json inside one row looks like

[ 
{'characterName': '', 'creditType': 'Actor', 'personName':'M.A.Nadiadwala'}, 
{'characterName': '', 'creditType': 'Actor', 
'personName': 'Gyandev Agnihotri'}, 
{'characterName': '', 'creditType': 'Actor', 
'personName': 'Rakesh Kumar'} 
] 

列cast_and_crew是一个列表
(type(movie_details.iloc[0]['cast_and_crew'])Out[18]: list) 内部 它包含密钥值对的字典。

回答

0

连接之类数据框到原来的cast_and_crew数据框,您可以用这个阅读JSON我无法理解你的O/P格式,以便您之后,可以继续...

cast_and_crew =[ 
    {'characterName':'','creditType':'Actor','personName':'M.A.Nadiadwala'}, 
    {'characterName': '', 'creditType': 'Actor', 
    'personName': 'Gyandev Agnihotri'}, 
    {'characterName': '', 'creditType': 'Actor', 
    'personName': 'Rakesh Kumar'} 
] 
for data in cast_and_crew: 
    # for python3 use print(data.get('personName')) 
    print data.get('personName') 

O/P:

M.A.Nadiadwala 
M.A.Nadiadwala 
M.A.Nadiadwala 
+0

'名单' 对象有没有属性 '得到'。 –

+0

得到函数正在编写字典,编辑... – GrvTyagi

+0

只是复制粘贴这个代码在ipython – GrvTyagi

0
new_df = df.cast_and_crew.apply(lambda x: x[0]['personName']).to_frame(name='personName') 

应该做的伎俩。由于您没有以可复制粘贴的方式粘贴数据帧,因此我无法真正测试它。

编辑:这只需要列表的第一项。我不确定你的输出应该是什么,所以也许我回答太快了一点。你能举一个你想要得到的例子输出吗?

0

您可以参考this。它将让您的JSON属性成一列,然后你可以通过使用

frames = [df1, df2] 
result = pd.concat(frames)