我在pandasDataFrame中有两列:authors和name。我想创建第三列:单元格的值是True相应行的中name是否包含相应行的authors,False否则。
authors
name
True
False
因此结果将如下图所示。
我已经试过.str.contains(),.str.extract(),.str.find(),.where(),等,但Python中返回一个错误:“系列”的对象是可变的,因此它们不能被散列。有谁知道如何在Python中创建第三列?
.str.contains()
.str.extract()
.str.find()
.where()
IIUC,然后您可以apply逐行进行lambda来检查在Authors中是否存在Name字符串:
apply
df['Check'] = df.apply(lambda row: row['Name'] in row['Authors'], axis=1)
应该管用
不能使用str.contains(),str.extract(),str.find(),或where()在这里,因为你想比较在行和这些方法期待的搜索条件的固定列表或图案。
str.contains()
str.extract()
str.find()
where()