2 回答
TA贡献1821条经验 获得超6个赞
获取布尔值索引
argument_cols = ['argument1', 'argument2']
boolean_idx = DF[argument_cols].apply(
lambda arg_column: DF['token'].combine(arg_column, lambda token, arg: token in arg)
)
boolean_idx
Out:
id argument1 argument2
0 True False
1 False True
2 True False
从行中选择值:
selected_vals = DF[argument_cols][boolean_idx]
selected_vals
Out:
id argument1 argument2
0 Tuvia Tza NaN
1 NaN perugia
2 the associated press NaN
堆叠selected_vals并获取包含参数名称的索引级别(如果一行中包含True值的列超过一列,则此代码将失败):
argument_index_level = selected_vals.stack().index.get_level_values(-1)
# Index(['argument1', 'argument2', 'argument1'], dtype='object')
DF['ARG'] = argument_index_level
DF
Out:
id argument1 argument2 token ARG
0 Tuvia Tza Moscow Tza argument1
1 umbria perugia perugia argument2
2 the associated press Nelson associated argument1
您可以使用apply()更改“ ARG”列中的值。
添加回答
举报