在我的dataframe
中,我有一个包含json/dict
的列,我希望遍历行以提取一些值,并将其添加到新列中。
数据如下所示,注意omdb
是dict
我正在这样做,将imdbRating
提取到一个独立的列中,但是它给了我keyerror
pd_data['imdbRating'] = 0
for index, row in pd_data.iterrows():
row['imdbRating'] =row['omdb_info']['imdbRating']
那么,提取价值的正确方法是什么?在
另外,我可以让它工作:
^{pr2}$更新:
现在我认为应该是数据问题,也许有些row['omdb_info']
没有{row['omdb_info']
,我如何搜索它的存在?在
# this work
for index, row in pd_data[:118].iterrows():
pd_data.ix[index,'imdbRating'] = row['omdb_info']['imdbRating']
# this do not work
for index, row in pd_data[:119].iterrows():
pd_data.ix[index,'imdbRating'] = row['omdb_info']['imdbRating']
print pd_data.ix[118]['omdb_info']['imdbRating'] # => 6.8
print pd_data.ix[119]['omdb_info']['imdbRating'] # => 6.9
print pd_data.ix[120]['omdb_info']['imdbRating'] # => 5.5
它报告的错误
KeyError Traceback (most recent call last)
<ipython-input-143-a0ae169ddfe9> in <module>()
9 # this do not work
10 for index, row in pd_data[:119].iterrows():
---> 11 pd_data.ix[index,'imdbRating'] = row['omdb_info']['imdbRating']
KeyError: 'imdbRating'
另外,我可以在哪里上传数据文件,这样你就可以看一下了?在
如果可能,您希望避免迭代,而应该找到一个要应用的函数,例如:
我相信,您可以尝试简单地访问
omdb_info
中字典的值,并使用单个操作将其添加到新列中,而不是迭代。在我相信对于您正在尝试的操作,您可能不需要迭代,但我承认我已经有一段时间没有使用数据帧了。在
相关问题 更多 >
编程相关推荐