我有一个数据框,其中一列包含名为cast_and_crew的json对象。
我需要获取密钥' person_name'的价值。并将其存储在单独的数据框中
包含cast_and_crew json的数据框在this中给出
请参考这个图像。 click here
一行内的json看起来像是
[
{'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 :(得分:0)
new_df = df.cast_and_crew.apply(lambda x: x[0]['personName']).to_frame(name='personName')
应该做的伎俩。我无法真正测试它,因为您没有以可复制粘贴的方式粘贴数据框。
编辑:这只占用列表的第一项。我不确定你的输出应该是什么,所以也许我回答得太快了。您能否举例说明您想要的内容?
答案 1 :(得分:0)
您可以参考this。它会将您的json属性放入一列,然后您可以使用
将该数据帧连接到原始的cast_and_crew数据框中frames = [df1, df2]
result = pd.concat(frames)
答案 2 :(得分:0)
你可以用它来阅读这个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