对于DataFrame中的每一行,我都有以下嵌套字典。
dictionary
{'https://twitter.com/tonythehuff/status/927186407789137920/photo/1': {'malicious': False}}
{'http://giveaway.amazon.com\\__CONNECTIONPOOL_ERROR__': {'malicious': False}}
{'http://pcktpro.com\\__CONNECTIONPOOL_ERROR__': {'malicious': True}}我想通过映射嵌套字典的值来创建一个新列。名为“恶意”的新列中的行如下所示
malicious
False
False
True是否有任何有效的方法来获得上述嵌套字典的值?
数据:
{'dictionary': [
{'https://twitter.com/tonythehuff/status/927186407789137920/photo/1': {'malicious': False}},
{'http://giveaway.amazon.com\\__CONNECTIONPOOL_ERROR__': {'malicious': False}},
{'http://pcktpro.com\\__CONNECTIONPOOL_ERROR__': {'malicious': True}}]}发布于 2022-02-27 01:11:37
看起来,使用双循环的列表理解应该完成以下工作:
df['malicious'] = [d.get('malicious') for outer_d in df['dictionary'] for d in outer_d.values()]或者,您可以尝试以下代码,从“字典”列中创建一个DataFrame,并使用str.get获取“恶意”键下的值
df['malicious'] = (pd.DataFrame(df['dictionary'].tolist()).set_axis([0]*len(df), axis=1)
.groupby(level=0, axis=1)
.first()[0]
.str.get('malicious'))输出:
dictionary malicious
0 {'https://twitter.com/tonythehuff/status/92718... False
1 {'http://giveaway.amazon.com\__CONNECTIONPOOL_... False
2 {'http://pcktpro.com\__CONNECTIONPOOL_ERROR__'... Truehttps://stackoverflow.com/questions/71280778
复制相似问题