首页 > 解决方案 > 将函数应用于数据框并仅在 Python 中返回部分字典

问题描述

我有一个带有“isbn13”列的df。我还有一个名为“isbnlib.meta”的函数。这个函数来自库 isbnlib。我想在“isbn13”列的每一行上运行该函数。我正在使用 apply 函数来做到这一点。

df['publisher'] = df['isbn13'].apply(isbnlib.meta)

问题是每个 isbn13 的结果都是一个字典,其中包含不同的点,例如标题、作者、出版商等。我只是在字典中寻找要写在我的数据框中的“出版商”结果。

如何仅从函数的字典结果中返回数据框中的“Publisher”结果?

先感谢您。

标签: pythonpandasdictionaryisbnlib

解决方案


我想您isbnlib.meta()会根据isbn13列中的值返回一个字典。如果是这样,您可以在相同的情况下使用 lambda 函数apply

df['publisher'] = df['isbn13'].apply(lambda x: isbnlib.meta(x).get('Publisher', None))

在这种情况下,如果您dict没有Publisher密钥,它将返回默认值None


推荐阅读