在pandas中创建新列,并根据第二列是否包含各种字符串列表中的字符串来设置其值,可以使用apply函数结合lambda表达式来实现。
首先,我们需要导入pandas库:
import pandas as pd
然后,我们可以创建一个DataFrame对象,其中包含两列数据,假设第一列为"column1",第二列为"column2":
data = {'column1': ['apple', 'banana', 'orange', 'grape'],
'column2': ['I like apple', 'I hate banana', 'I love orange', 'I dislike grape']}
df = pd.DataFrame(data)
接下来,我们可以定义一个字符串列表,例如:
string_list = ['like', 'love']
然后,我们可以使用apply函数和lambda表达式来创建新列,并根据第二列是否包含字符串列表中的字符串来设置其值:
df['new_column'] = df['column2'].apply(lambda x: any(word in x for word in string_list))
在上述代码中,lambda表达式会遍历字符串列表中的每个字符串,检查该字符串是否在第二列的每个元素中出现,如果出现则返回True,否则返回False。apply函数会将lambda表达式应用到第二列的每个元素上,并将结果赋值给新列"new_column"。
最后,我们可以打印DataFrame对象来查看结果:
print(df)
输出结果如下:
column1 column2 new_column
0 apple I like apple True
1 banana I hate banana False
2 orange I love orange True
3 grape I dislike grape False
这样,我们就成功地在pandas中创建了新列,并根据第二列是否包含各种字符串列表中的字符串来设置其值。
领取专属 10元无门槛券
手把手带您无忧上云