检查数据框列中的值,返回一个。

2024-05-21 04:35:59 发布

您现在位置:Python中文网/ 问答频道 /正文

对于这里的大多数人来说,这可能是一项快速而简单的任务。不过,对我来说,在python的初学者给出了一些问题。假设我们有:

数据

g=pd.DataFrame({'AGGRESSION':[0,1,0,0,1], 'DECEPTIVENESS':[0,1,0,0,0]},index=    [1,2,3,4,5])

问题和期望的结果。我想遍历行检查攻击性和欺骗性都等于1的行,在相关行中只留下欺骗性的1

g['AGRESSION']=[0,0,0,0,1]
g['DECEPTIVENESS']=[0,1,0,0,0]

Tags: 数据dataframeindexpd初学者攻击性aggression欺骗性
1条回答
网友
1楼 · 发布于 2024-05-21 04:35:59

您可以使用Series.where

g['AGGRESSION'] = g['AGGRESSION'].where(~((g['AGGRESSION'] == 1) & (g['DECEPTIVENESS'] == 1)), 0)

enter image description here

或者简单地说:

g['AGGRESSION'][(g['AGGRESSION'] == 1) & (g['DECEPTIVENESS'] == 1)] = 0

相关问题 更多 >