ホームページ > バックエンド開発 > Python チュートリアル > あるパンダデータフレームには存在するが、別のパンダデータフレームには存在しない行を特定する方法は?

あるパンダデータフレームには存在するが、別のパンダデータフレームには存在しない行を特定する方法は?

DDD
リリース: 2024-12-14 08:20:15
オリジナル
324 人が閲覧しました

How to Identify Rows Present in One Pandas DataFrame but Absent in Another?

データフレーム間で異なる行の識別

問題ステートメント

交差する行を持つ 2 つの Pandas データフレーム (df1 と df2) が与えられた場合、タスクは、 df1 に存在しない行df2.

解決策

この問題を解決するには、df1 から df2 への左結合を実行し、df2 の重複を確実に排除して、df1 の各行が df1 の 1 つの行のみと結合するようにします。 df2.

df_all = df1.merge(df2.drop_duplicates(), on=['col1', 'col2'], how='left', indicator=True)
ログイン後にコピー

この左結合により、それぞれの起点を示す追加の列 _merge が作成されます。 row.

df1 に限定される行をフィルターするには、次のブール条件を適用します。

df_filtered = df_all[df_all['_merge'] == 'left_only']
ログイン後にコピー

間違ったソリューション

一部のソリューションは、各列の各値を個別にチェックする際にエラーが発生します。行ごとの存在を考慮するのではなく。たとえば、次の解決策:

(~df1.col1.isin(common.col1)) & (~df1.col2.isin(common.col2))
ログイン後にコピー

は、共通に存在しない値 [3, 10] を持つ行のキャプチャに失敗するため、誤った結果を返します:

0    False
1    False
2    False
3     True
4     True
5    False
dtype: bool
ログイン後にコピー

以上があるパンダデータフレームには存在するが、別のパンダデータフレームには存在しない行を特定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート