お世話になります。
以下の命令を実現したいのですが、方法がわからず困っています。
Pandasの2つのデータフレームを比較し、
一方に存在しないインデックスがあった場合、
条件分岐する。
しかし以下のコードを実行すると、
df_sc["リンク"]とdf_scv["リンク"]に差分がないのにもかかわらず、
elseに進んでしまいます。
python3
1# 以下の2つのデータフレームのカラム名は同じ 2df_sc = pd.DataFrame(dic_data) # スクレイピングしてきたデータ 3df_csv = pd.read_csv("data.csv") # 前回スクレイピングしたデータ 4 5# 差分のインデックスのみ抽出したデータフレームの作成 6df_comp = df_sc[~df_sc["リンク"].isin(df_csv["リンク"])] 7 8# 差分のdf_compをdf_csvと連結 9df_concat = pd.concat([df_csv, df_comp], ignore_index=True, sort=False) 10 11# 連結したデータフレームdf_concatをcsvファイルとして保存 12df_concat.to_csv(path + csv_name, index=False, encoding="utf_8_sig") 13 14# df_csv["リンク"]のカラムにないものがdf_sc["リンク"]にあった場合、通知したい 15for i in df_sc["リンク"]: 16 if i in df_csv["リンク"]: 17 print("既知のリンクです", i) 18 else: 19 print("新しいリンクです", i) 20 notification(i) # 通知の関数 21
原因がわかる方がおられましたら、どうかご教示お願いいたします。
また、より良い書き方があれば、教えてくださいませ。
利用環境
Python 3.9.7
pandas 1.3.3
回答2件
あなたの回答
tips
プレビュー