Pandasを使った行の比較方法について


### やりたいこと

PythonでBook1とBook2のエクセルを比較します。  
Book1には無い行を、Book2のヘッダーFlagとしてどの行がないかを記載したいです。

両方のエクセルのキーとなるものはtitleにしています。

Book1のエクセル

[code]

    created_at,title,messageId,content
    2022-06-16T06:43:17.488Z,日本,2332528852,雨
    
[/code]

Book2のエクセル

[code]

    created_at,title,messageId,content
    2022-06-16T02:28:37.323Z,アメリカ,2332528842,晴れ
    2022-06-16T02:28:37.323Z,スペイン,2332528843,,
    2022-06-16T06:43:17.488Z,日本,2332528852,雨,
    2022-06-16T02:28:37.323Z,カナダ,2332528853,,
    
[/code]

### 実現したい結果

Book2にFlagの列を追加して、Book1に行がなければ、Nothingとして記入したいです。

[code]

    created_at,title,messageId,content,Flag
    2022-06-16T02:28:37.323Z,アメリカ,2332528842,晴れ,Nothing
    2022-06-16T02:28:37.323Z,スペイン,2332528843,,Nothing
    2022-06-16T06:43:17.488Z,日本,2332528852,雨,
    2022-06-16T02:28:37.323Z,カナダ,2332528853,,Nothing
    
[/code]

**現在の結果**  
特にエラーなく処理されていますが、NothingのFlagはアメリカだけ記入されます。  
他の行もないので、実現したい結果のように記入したいです。

何かクエリで検索する際に間違っていますでしょうか。  
もし分かる方がいましたら、教えていただけますか。

お手数ですが、よろしくお願いいたします。

全体のコード

[code]

    import pandas as pd
    
    #ファイル名
    Book1=r"test.xlsx"
    Book2=r"test2.xlsx"
    
    #Book1エクセル読み込み
    df1 = pd.read_excel(Book1)
    #Book2エクセル読み込み
    df2 = pd.read_excel(Book2)
    
    #df2のエクセルにヘッダー追加
    df2['Flag'] = ""
    #df2['コメントフラグ'] = ""
    print(df2)
    
    #title keyにして行数を確認
    df1_list = df1[['title']].values.tolist()
    print(df1_list)
    
    #1行ずつtitleを比較して一致しなければ、Nothingとしてフラグをつける
    for curtitle in df1_list:
        wdf = df2.query('(title != @curtitle)')
        #if len(wdf) <= 0: continue
        df2.at[wdf.index[0], 'Flag'] = "Nothing"
    
    #結果をxlsxとして書き出し
    df2.to_excel(Book2, sheet_name="Sheet1", index=False, header=True)
    
[/code]




I used Google Translate, so it might be unnatural.  
より良いPandas関数があるようですが、原始的な方法で作成しました。

[code]

    #1行ずつtitleを比較して一致しなければ、Nothingとしてフラグをつける
    for curtitle in df1_list:
        wdf = df2.query('(title != @curtitle)')
        for index in wdf.index.values:
            df2.at[index, 'Flag'] = "Nothing"
    
[/code]




I used Google Translate, so it might be unnatural.  
より良いPandas関数があるようですが、原始的な方法で作成しました。

[code]

    #1行ずつtitleを比較して一致しなければ、Nothingとしてフラグをつける
    for curtitle in df1_list:
        wdf = df2.query('(title != @curtitle)')
        for index in wdf.index.values:
            df2.at[index, 'Flag'] = "Nothing"
    
[/code]

