2つの列を持つデータフレームで条件チェックを実行しようとしています。両方の値が等しい場合を除いて、どちらの列の内容も他の列にはありません値が両方の列に存在し、値が等しくないインスタンスはありません。条件付きテストとpandasデータフレームの2つの列の比較
以下の場合、条件が満たされます。 alternahaircare.comはdomainとcredit_domainの両方の列にありますが、その場合は両方の値が同じです。
Out[198]: df
domain credit_domain
2 alternahaircare.com alternahaircare.com
3 alternahaircare.myshopify.com alternahaircare.com
4 shop.alternahaircare.com alternahaircare.com
5 americancrew.com americancrew.com
以下は、私が満足する条件が満たされていない上記の2つの変形例を示します。
この一、あなたが行があることがわかりますが、どこのドメイン= alternahaircareとcredit_domain = americancrew .com。これは間違っています - 今度はalternahaircare.comが両方の列で発生しますが、credit_domain列の値がドメイン列と一致しない場合があります。
以下の例も間違っています。私が満足したい条件を満たしていません。 alternahaircare.comのインスタンス== alternahaircare.comがあるが、すなわちamericacrew.com
Out[198]: df
domain credit_domain
2 alternahaircare.com alternahaircare.com
3 alternahaircare.myshopify.com alternahaircare.com
4 shop.alternahaircare.com alternahaircare.com
5 alternahaircare.com americancrew.com
自体ない値に、これらの問題の第二の割り当てられalternahaircare.comのインスタンスもありますドメイン値の数をチェックし、2回発生するものを特定することで簡単に対処できます。
最初の問題は私を混乱させます。
potential_error_rows = df[df.credit_domain.isin([x for x in df.credit_domain.tolist() if x in df.domain.tolist()])]
はこれ以上何をすべきかを考えることができませんでした:私のアプローチは、潜在的な問題の行を識別し、その後GROUPBYや条件文を使用して試してみました!
私は出力として悪い行だった何を望むかを。悪い行は、クレジットドメイン値がドメイン値にあるが、クレジットドメイン!=ドメインのような値の場合がある場合です。私の質問に2番目の例のフレームが表示された場合:結果はdomain = alternahaircare.comとcredit domain = americancrew.comの行にしたいと思います。 – vagabond