2016-11-16 5 views
1

私は、誤ってtrueを返すdf.duplicated()の問題に遭遇しています。インデックス(df.reset_index())をリセットすると、df.duplicates()は正しい結果を返します。Python Pandas df.duplicated()false positives

この問題はraised in 2013でしたが、原因は特定されておらず、回避策にすぎません。 SQLデータベースからデータを読み込んだ後に問題が発生しています。 .duplicated()メソッドを実行する必要があるたびに、dfのインデックスをリセットすることに頼らざるをえないため、誰かが解決策を持っていると大変感謝します。

私は '重複' DF [df.duplicatedを()]を使用して表示するとき、次を得る:

name  type code 
John Doe A  6532 
Jane Doe A  1124 
Rudolph Doe B  3412 

をこれらのどれもが複製されていません。 df.reset_index()を実行した後、私は完全に異なる結果を返します。

私は非常に混乱しており、インターネットで解決策を見つけました。私は提供できるどんな助けにも感謝します。

私は最新のPandas(0.19.1)リリースを使用しています。しかし、私はこれを0.18で試してみて、同じ問題がありました。

+0

これらのどれも重複していないことをどのように知っていますか? .duplicatedのデフォルトは、最初のオカレンスをTrueに設定しない 'first'であることを知っていますか?2つしか重複がない場合、最後の要素のみが返されますか? – schlump

+1

誰かがあなたを助けることができると期待したら、dfとdf.duplicated()の両方を実際に表示する必要があります。それは、インデックスは複製の計算を考慮しないことに注意してください。しかし、reset_indexを実行すると、インデックスは通常の列になり、計算には含まれません。したがって、reset_indexが違いを生むことが絶対に予想されます(インデックスが一意の場合は、インデックス自体が一意であるため、reset_indexを実行した後は何も重複しません)。 – JohnE

答えて

0

私のRAMの1つの棒が今日死んだ。一度置き換えられたこの問題は、問題ではなくなりました。私はこれが私の問題を引き起こしていたと仮定して、RAMを交換しても何の問題もなかった。

ご協力いただきありがとうございます。ほんとうにありがとう。