将函数应用于数据框,并且仅 Python 中字典的 return 部分
Apply a function to a dataframe and only return part of the dictionary in Python
我有一个带有“isbn13”列的 df。我还有一个名为“isbnlib.meta”的函数。此函数来自库 isbnlib。我想 运行 “isbn13”列每一行的函数。我正在使用应用函数来做到这一点。
df['publisher'] = df['isbn13'].apply(isbnlib.meta)
问题是每个 isbn13 的结果是一个包含标题、作者、出版商等不同点的字典。我只是在字典中寻找“出版商”结果,以便在我的字典中写出数据框。
如何仅return 数据框中的“Publisher”结果来自函数的字典结果?
提前致谢。
我想您的 isbnlib.meta()
return 是一个基于 isbn13
列中的值的字典。如果是这样,您可以在同一个 apply
:
中使用 lambda 函数
df['publisher'] = df['isbn13'].apply(lambda x: isbnlib.meta(x).get('Publisher', None))
在这种情况下,如果您的 dict
没有 Publisher
密钥,它将 return 默认值 None
。
我不熟悉 isbnlib 库,但假设 isbnlib.meta 接受一个字符串并且 returns一本字典,你可以这样做:
df['publisher'] = df['isbn13'].apply(lambda x: isbnlib.meta(x)['Publisher'])
在 .apply() 中使用 lambda 函数对于像这样的简单任务非常有用。
我有一个带有“isbn13”列的 df。我还有一个名为“isbnlib.meta”的函数。此函数来自库 isbnlib。我想 运行 “isbn13”列每一行的函数。我正在使用应用函数来做到这一点。
df['publisher'] = df['isbn13'].apply(isbnlib.meta)
问题是每个 isbn13 的结果是一个包含标题、作者、出版商等不同点的字典。我只是在字典中寻找“出版商”结果,以便在我的字典中写出数据框。
如何仅return 数据框中的“Publisher”结果来自函数的字典结果?
提前致谢。
我想您的 isbnlib.meta()
return 是一个基于 isbn13
列中的值的字典。如果是这样,您可以在同一个 apply
:
df['publisher'] = df['isbn13'].apply(lambda x: isbnlib.meta(x).get('Publisher', None))
在这种情况下,如果您的 dict
没有 Publisher
密钥,它将 return 默认值 None
。
我不熟悉 isbnlib 库,但假设 isbnlib.meta 接受一个字符串并且 returns一本字典,你可以这样做:
df['publisher'] = df['isbn13'].apply(lambda x: isbnlib.meta(x)['Publisher'])
在 .apply() 中使用 lambda 函数对于像这样的简单任务非常有用。