質問: df3[df3["C"].str.contains("○|×|□",na=False)].reset_index(drop=True) pd.set_option('display.unicode.east_asian_width', True) #ファイル書き込み df_h.to_csv("test.csv",encoding='utf_8_sig',index=False) ``` わかる方いらっしゃいましたらご教示願います。 お手数ですが、宜しくお願いいたします。
回答: 差分を取るのに `isin` を使うのですが、そのままだと `index` も比較対象にしてしまうので、データフレームの行を tuple に変換します。 ``` import csv import pandas as pd #差分抽出方法のコード #ファイルの読み込み df1 = pd.read_csv("test1.csv", dtype=str, na_filter=False, encoding='utf_8_sig') df2 = pd.read_csv("test2.csv", dtype=str, na_filter=False, encoding='utf_8_sig') # tuple に変換してから差分を取得 df3 = df2[~df2.apply(tuple, 1).isin(df1.apply(tuple, 1))] #特定の文字を検索 df_h = df3[df3["C"].str.contains("○|×|□")].reset_index(drop=True) #ファイル書き込み df_h.to_csv("test.csv", encoding='utf_8_sig', index=False) pd.set_option('display.unicode.east_asian_width', True) print(df_h) => A B C 0 1 アメリカ × 1 2 カナダ ○ 2 3 日本 ○ 3 4 タイ ○ 4 10 ベトナム ○ 5 7 ○ 6 8 × 7 ミャンマ □ ```