我有房地產資料 csv 檔案。行中有很多重復的資訊,如下例所示:
Row1:
Su baldais, Skalbimo ma?ina, **Virykl?**, **Indaplov?**, Vonia
Row2
Virtuv?s komplektas, **Virykl?**, **Indaplov?**, Du?o kabina, Rekuperacin? sistema
如您所見,有很多資料在重復(我用星號標記)。有沒有辦法用 python 從所有行中只獲取唯一值?
uj5u.com熱心網友回復:
目前還不完全清楚你想要什么,所以我將包括兩個場景:
您example.csv在 cwd 中的資料:
Su baldais,Skalbimo ma?ina,Virykl?,Indaplov?,Vonia
Virtuv?s komplektas,Virykl?,Indaplov?,Du?o kabina,Rekuperacin? sistema
方案 1
您需要出現在 csv 中的每個值,但不希望任何值超過一次。一個集合的完美用例,每個值只存盤一次。
#!/usr/bin/env python3
import csv
unique_values = set()
with open("example.csv") as handle:
reader = csv.reader(handle)
for row in reader:
unique_values.update(row)
print(", ".join(unique_values))
結果:
Skalbimo ma?ina, Du?o kabina, Rekuperacin? sistema, Su baldais, Indaplov?, Virtuv?s komplektas, Virykl?, Vonia
方案 2
您只需要 csv 中的唯一值,丟棄任何出現多次的值。
#!/usr/bin/env python3
import csv
all_values = set()
to_delete = set()
with open("example.csv") as handle:
reader = csv.reader(handle)
for row in reader:
for value in row:
if value in all_values:
to_delete.add(value)
else:
all_values.add(value)
print(", ".join(all_values - to_delete))
在這里,我使用了兩個集合,第二個集合被稱為to_delete包含我們多次看到的任何值。我跑來all_values - to_delete給我一組完全獨特的價值觀。
結果:
Du?o kabina, Su baldais, Virtuv?s komplektas, Skalbimo ma?ina, Vonia, Rekuperacin? sistema
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478439.html
