首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定义函数从嵌套字典中提取python中每一行的值?

如何定义函数从嵌套字典中提取python中每一行的值?
EN

Stack Overflow用户
提问于 2022-01-20 05:27:48
回答 2查看 202关注 0票数 0

我在dataframe 'df‘中有一个名为’URL‘的列,每一行都由带有URL的嵌套字典组成,并且它是否是恶意的。我只想为每一行提取嵌套字典的值。

代码语言:javascript
复制
0    {'url example 1': {'malicious': False}}
1    {'url example 2': {'malicious': False}}  

通过定义一个函数,我希望使用'apply‘函数来获得每一行的结果。

下面是我定义的示例函数。

代码语言:javascript
复制
def urlconcern(url):
    try:
        r = s.lookup_urls([url]) 
        return r.values()
    except:
        pass

在使用“apply”函数运行此函数之后

代码语言:javascript
复制
df['urls'].apply(urlconcern)

这只给出下面的结果与圆括号(奇怪)

代码语言:javascript
复制
0    ({'malicious': False})
1    ({'malicious': False})

想要的答案是

代码语言:javascript
复制
False
False

是否有办法这样做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-20 05:38:38

给熊猫系列s (我假设这是熊猫系列)

代码语言:javascript
复制
s = pd.Series([{'url example 1': {'malicious': False}},
               {'url example 2': {'malicious': False}}])

您可以在next中使用生成器表达式来查找嵌套dicts的值。

代码语言:javascript
复制
out = s.apply(lambda url: next((v for d in url.values() for k,v in d.items()), None))

输出:

代码语言:javascript
复制
0    False
1    False
dtype: bool

然而,我不相信这是你想要的,因为你在这里失去了网址信息。

票数 1
EN

Stack Overflow用户

发布于 2022-01-20 05:45:58

这是熊猫的资料吗?你实例化了吗?您可能想看看这本字典是如何构造的,因为它应该更像

代码语言:javascript
复制
>>> df = {'url':['url example 1', 'url example 2', 'url example 3'], 'malicious': [False, False, True]}
>>> df = pd.DataFrame(df)
>>> df
             url  malicious
0  url example 1      False
1  url example 2      False
2  url example 3       True

那就去做

代码语言:javascript
复制
>>> df[df['malicious'] == False]
             url  malicious
0  url example 1      False
1  url example 2      False

我知道这并不能准确地回答您的问题,但这是使用DataFrames的一种标准方法,应该有助于您以后的工作流程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70781193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档