如何根据数据帧的另一列中的值是否包含在另一个数据帧的特定列中来设置数据帧的一列的值。如果包含,则数字为1,否则为0。例如:我有两个数据帧:
a={'age':[22,38,26,62,198,27],'no':[1,2,3,4,5,6]}
TableB= {'name': ['Braund', 'Cummings', 'Heikkinen', 'Allen','Mary','Celina','Roger'],
'age': [22,38,26,35,41,22,38],
'fare': [7.25, 71.83, 0 , 8.05,7,6.05,6],
'survived?': [False, True, True, False, True, False, True]}
我想检查a的'age'列中的每个数字是否都包含在TableB的'age'列中,如果包含,请在a中添加一列'Observer',并将值设置为1,如果不包含,则为0
I have tried this:
a['age'].isin(TableB['age'].set_value('Observer',1)
预期结果如下,但我的结果是a的observer列中的所有值都是1
a={'age':[22,38,26,62,198,27],'no':[1,2,3,4,5,6],'observer':[1,1,1,0,0,0]}
您可以将布尔掩码强制转换为整数,用于
True/False
到1/0
映射:另一种解决方案是使用^{} :
如果使用字典,则使用列表理解和
if-else
并通过in
测试成员资格:相关问题 更多 >
编程相关推荐