isbnlib.meta当您输入 isbn 时,我正在使用它来提取元数据(书名、作者、出版商年份等)。我有一个包含 482,000 isbns 的数据框(列标题:isbn13)。当我运行该函数时,我会收到一个错误,NotValidISBNError该错误会停止其轨道中的代码。我想要发生的是,如果出现错误,代码将简单地跳过该行并移至下一行。
现在这是我的代码:
list_df[0]['publisher_isbnlib'] = list_df[0]['isbn13'].apply(lambda x: isbnlib.meta(x).get('Publisher', None))
list_df[0]['yearpublished_isbnlib'] = list_df[0]['isbn13'].apply(lambda x: isbnlib.meta(x).get('Year', None))
#list_df[0]['language_isbnlib'] = list_df[0]['isbn13'].apply(lambda x: isbnlib.meta(x).get('Language', None))
list_df[0]
list_df[0]是我尝试对数据帧进行分块后的前 20,000 行。我刚刚手动输入此代码 24 次来处理每个块。
我尝试尝试:和例外:但最终发生的只是代码停止,并且我没有报告任何元数据。
追溯:
---------------------------------------------------------------------------
NotValidISBNError Traceback (most recent call last)
<ipython-input-39-a06c45d36355> in <module>
----> 1 df['meta'] = df.isbn.apply(isbnlib.meta)
e:\Anaconda3\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds)
4198 else:
4199 values = self.astype(object)._values
-> 4200 mapped = lib.map_infer(values, f, convert=convert_dtype)
4201
4202 if len(mapped) and isinstance(mapped[0], Series):
pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()
e:\Anaconda3\lib\site-packages\isbnlib\_ext.py in meta(isbn, service)
23 def meta(isbn, service='default'):
24 """Get metadata from Google Books ('goob'), Open Library ('openl'), ..."""
---> 25 return query(isbn, service) if isbn else {}
26
27
e:\Anaconda3\lib\site-packages\isbnlib\dev\_decorators.py in memoized_func(*args, **kwargs)
22 return cch[key]
23 else:
---> 24 value = func(*args, **kwargs)
25 if value:
26 cch[key] = value
弑天下
holdtom
相关分类