2017-03-08 69 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)