2017-12-15 3 views
0

イムと私は1つ上の2つのCSVリストをマージし、重複を削除する必要がありますが、最終的な出力は、最後の列に余分なカンマを追加し、私はなぜCSVとパンダと少しの仕事を作るPythonのパンダの余分なカンマ

知っているドント

DESCRIPTION EXTRAS ADDRESS AVAILABLE 
1 House  WiFi  CP 432  1 
2 Farm   NONE  CP 345  1 
3 House  Wifi  CP 315  1 

    DESCRIPTION EXTRAS ADDRESS AVAILABLE 
1 House  WiFi  CP 437  0 
2 House  Wifi  CP 315  0 

をそして、私がマージするとき、結果の両方がある:

私はこのような2つのCSVリストを持っている

ID DESCRIPTION EXTRAS ADDRESS AVAILABLE,,,,, 
1 House  WiFi  CP 432  1,,,,,, 
2 Farm   NONE  CP 345  1,,,, 
3 House  Wifi  CP 315  1,,,,,, 
1 House  WiFi  CP 437  0,,,,, 

は、これは私のコードである(数「には、」絶対にランダムである):

with open("C:\\files\\20171412123920-1\\20171412123920-1Total.csv", "rt", encoding="utf-8") as f2: 
    reader = csvCSV.reader(f) 
    for row in reader:   
     merged.append(row) 

with open("C:\\files\\20171412123920-1\\20171412123920-1.csv", "rt", encoding="utf-8") as f: 
    readerTotal = csvCSV.reader(f2) 
    for row in readerTotal: 
     merged.append(row) 



with open("C:\\Users\\Desktop\\Test\\Python\\20171412123920-1Comparacion.csv", "wb") as csvfile: 

    spamwriter = csv.writer(csvfile,dialect='excel', encoding='utf-8') 
    spamwriter.writerow(["ID","DESCRIPTION","EXTRAS","ADDRESS","AVAILABLE"]) 
    for row in merged: 

     spamwriter.writerow(row) 

    df=pd.read_csv("C:\\Users\\Desktop\\Test\\Python\\20171412123920-1Comparacion.csv", error_bad_lines=False) 

    df.to_string(index=False) 
    df.drop_duplicates(['DESCRIPTION'], keep='first', inplace = True) 
    df = df.reset_index(drop=True) 

    df.set_index('ID', inplace = True) 
    df.to_csv("C:\\Users\\Desktop\\Test\\Python\\201714121239201Comparacion.csv") 
+0

なぜあなたはファイルを '' rt "'でオープンしていますか? –

+0

本当に私はこの種のもので新しく、チュートリアルから取りました。 "rt"は "デフォルトのテキストモードで読み込み"を意味します。 – Jonan87

+1

最初に、_always_はCSVをデータフレームにロードするときに 'pd.read_csv'を使います。私は、あなたがそれらのCSVを読んでいる方法のためにこの問題が起こっていると思います。 –

答えて

1

まず、両方のcsvファイルをpandasデータフレームにマージします。次に、データフレームから重複データを削除します。

import pandas as pd 
df1=pd.read_csv('first.csv') 
df2=pd.read_csv('second.csv') 

frames = [df1, df2] 
result=pd.concat(frames) 

df5 = pd.DataFrame(result) 
df5.drop_duplicates() 

print(df5) 
+0

ありがとう、それは問題を解決する! – Jonan87

関連する問題