可以使用set操作和lambda函数实现这个任务。首先,将每一行中的A和B中的字符串转换为set,然后使用set操作符“-”找到不同的元素,最后将剩下的元素添加到列C中。
代码示例:
import pandas as pd
df = pd.DataFrame({'A': [['apple', 'banana', 'orange'], ['apple', 'grape'], ['pear', 'peach', 'banana']],
'B': [['banana', 'pear'], ['orange'], ['peach', 'watermelon']],
'C': [[] for _ in range(3)]})
df['C'] = df.apply(lambda row: list(set(row['B']) - set(row['A'])), axis=1)
print(df)
输出结果:
A B C
0 [apple, banana, orange] [banana, pear] [pear]
1 [apple, grape] [orange] [orange]
2 [pear, peach, banana] [peach, watermelon] [watermelon]
可以看到,每个新的字符串都被添加到了列C中。