2017-01-30 9 views
0

私は、次のデータフレームを持っています。ドロップ重複データ

たとえば、同じdrug_id = 32のWD列に2つの「泣き」があります。だから私は泣いている行の1つを削除したいと思います。

どうすればいいですか?私は行を複製する方法を知っていますが、このコードにこの条件を追加する方法はわかりません。 DF = df.apply上部/下部ケースが重要である場合

df.drop_duplicates(subset = ["drug_id", "WD"]) 

:(ラムダX:x.drop_duplicates())

+0

方法メアリーすることで、それは私ではなく、データの絵よりも、コピーして貼り付けることができ、データを持っていた場合...私はこの質問をupvoteと思います。 – piRSquared

答えて

2

必要に応じて重複の特定の列を考慮subsetパラメータでdrop_duplicatesを使用することができ重複を考慮するために、あなたが試みることができる:

df[~df[['drug_id', 'WD']].apply(lambda x: x.str.lower()).duplicated()] 
あなたがを使用し、下部ケースの両方 drug_idWD列を変換することができます

を3210メソッドを使用して重複行を識別し、生成された論理列を使用して重複行をフィルタリングします。


df = pd.DataFrame({"A": [1,1,2,2], "B":[1,2,3,4], "C":[1,1,2,3]}) 

df 
# A B C 
#0 1 1 1 
#1 1 2 1 
#2 2 3 2 
#3 2 4 3 

df.drop_duplicates(subset=['A', 'C']) 
# A B C 
#0 1 1 1 
#2 2 3 2 
#3 2 4 3 
+1

どうすれば停止ギャップ 'df.assign(WD = df.WD.str.lower())。drop_duplicates(サブセット= [" drug_id "、" WD "))' – piRSquared

+0

@piRSquaredそれは素晴らしいです。私は若干異なるバージョンを持っています。 – Psidom

関連する問題