2017-01-25 9 views
1

私はCSVからSQLiteに変換しようとしているPythonプログラムを持っています。私のデータベースはJOINされています。私はこのようなデータベースを読んでいる:値を数える前にペアの行から重複を削除してください

df = pd.read_sql_query("SELECT d.id AS is, mac.add AS mac etc etc 

私はdf.drop_duplicates('tablename1','tablename2')

df.drop_duplicates('row[1],row[3]') 

を試してみましたが、動作するようには思えません。

以下のコードは、私がCSVバージョン&で使用したものです。Python SQLiteスクリプトを複製したいと思います。

for row in reader: 
    key = (row[1], row[2]) 

    if key not in entries: 
     writer.writerow(row) 
     entries.add(key) 

del writer 
+0

SQLクエリで 'select distinct'を選択して、それをPythonで行うのではなく、データベース経由でフィルタリングするのはなぜですか?:http://www.sqlitetutorial.net/sqlite-select-distinct –

+0

DISTINCTあなたは結果の重複行を削除することができますが、DISTINCT行1と行3をどのようにしてクエリの一部として一緒にするのかはわかりません。 – user2273231

+0

もしそれがSybaseのようなものなら、 –

答えて

1

最初にSELECT DISTINCT col1,col2 FROM tableを実行してみましたか?

あなたの場合、列名の前にDISTINCTキーワードを置くのと同じくらい簡単かもしれません。あなたは

df.drop_duplicates(subset=['tablename1','tablename2']) 
+0

正確に私の考え方(OPのコメントから):) distinctを使用する方法を説明するリンクを追加することもできます。http://www.sqlitetutorial.net/sqlite-select-distinct –

+0

多くの列には複数のenteriesがあります。削除するエンティティは、row1とrow3だけでなく、row3でも同じ値を持つものでした。ご返信ありがとうございます、私はあなたの応答に感謝します。 – user2273231

1

はあなたにpiRSquaredありがとう、行方不明のサブセットは、私は必要なすべてのです、ありがとうございました。

あなたが

もSELECT DISTINCTになりますが、今のところ、一部の作品のサブセットパラメータに df.drop_duplicates(サブセット= [ 'tablename1'、 'tablename2を'])を使用する必要があります。

1

subsetパラメータを使用する必要が

+0

私の投稿があなたの質問に答えた場合、upvoteと答えとしてそれをマークすることを忘れないでください – piRSquared

+0

、ありがとう、ありがとう。 – user2273231

関連する問題