在python中,比较dataframe中的列之后,是否可以替换列表中的单词?

在python中,比较dataframe中的列之后,是否可以替换列表中的单词?,python,pandas,dataframe,Python,Pandas,Dataframe,例如: 我有一个列表和一个列 words = ["Processing", "Rocketing", "Rocking", "Rocked", "Processed"] root_word first_word second_word 0 Process Processing Processed 1 Rocket Rocketing Rockets 2 Rock Rocking Rocked 现在我想得到像这样的输出 new_wo

例如: 我有一个列表和一个列

words = ["Processing", "Rocketing", "Rocking", "Rocked", "Processed"]

  root_word  first_word second_word
0   Process  Processing   Processed
1    Rocket   Rocketing     Rockets
2      Rock     Rocking      Rocked
现在我想得到像这样的输出

new_word = ["Process", "Rocket", "Rock"]

基本上,我想比较最后两列中的单词列表,如果在第一列的行中找到单词(即根单词),那么该行单词将附加到新列表中(即新单词)。那么,是否可以在python中执行此操作

只需使用
.loc[]
和or
|
操作符过滤条件为真的数据帧

In[322]: df.loc[df.first_word.isin(words) | df.second_word.isin(words),'root_word'].tolist()
Out[322]: ['Process', 'Rocket', 'Rock']

您可以使用
pd.DataFrame.isin

words = ["Processing", "Rocketing", "Rocking", "Rocked", "Processed"]

res = df.loc[df[['first_word', 'second_word']].isin(words).any(axis=1), 'root_word'].tolist()

# ['Process', 'Rocket', 'Rock']

是的,您可以使用for循环遍历每个单元格以检查
(如果单元格不在word中)
新单词。追加(单元格)
new_words = df[
     df['first_word'].isin(words) | df['second_word'].isin(words)
]['root_word'].tolist()