gpt4 book ai didi

python - 访问 Pandas 数据框列中列表中字典的值

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:26 26 4
gpt4 key购买 nike

我在 pandas 数据框中有一列,其中每一行都是一个列表,里面有一个字典,如下所示:

urls
---------------------------------------------------------
[{'url': http://t.co, 'expanded_url':http://nytimes.com}]
[{'url': http://t.co, 'expanded_url':http://time.com}]
[]

有些行只有一个空列表。因此,我尝试仅提取 expanded_url 的值,当我在测试列表上测试以下函数时,我能够做到这一点:

test_list = [{'url': 'https://t.co', 'expanded_url': 'https://nytimes.com'}]

def get_expanded_url(outterlist):
for item in outterlist:
if isinstance(item, dict):
return item['expanded_url']
else:
return None

但是,当我像这样将其应用于数据框中的列时:

df.urls.apply(lambda x: get_expanded_url(x))

我只得到 NaN,即使在我不应该得到的地方(不只是空列表的地方)也是如此。首先,有人可以解释为什么我的函数在数据帧上不起作用吗?其次,如何从列中提取 expand_url 的值?

最佳答案

你可以试试这个:

def get_expanded_url(outterlist):
try:
return outterlist[0]['expanded_url']
except IndexError:
return None

df.urls.apply(get_expanded_url)

该函数将尝试获取您想要的 url。如果不能,它将返回 None

此外,当使用apply 时,您可以只给出函数的名称。不需要创建 lambda 函数。

关于python - 访问 Pandas 数据框列中列表中字典的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39563719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com