T1 を読み込んで T2 として書き出す必要があります (両方とも .csv であることに注意してください)。T1 には重複する行が含まれています。T2 に重複を書きたくない。
T1
+------+------+---------+---------+---------+
| Type | Year | Value 1 | Value 2 | Value 3 |
+------+------+---------+---------+---------+
| a | 8 | x | y | z |
| b | 10 | q | r | s |
+------+------+---------+---------+---------+
T2
+------+------+---------+-------+
| Type | Year | Value # | Value |
+------+------+---------+-------+
| a | 8 | 1 | x |
| a | 8 | 2 | y |
| a | 8 | 3 | z |
| b | 10 | 1 | q |
| ... | ... | ... | ... |
+------+------+---------+-------+
現在、重複を除外するために、この非常に遅いコードがあります。
no_dupes = []
for row in reader:
type = row[0]
year = row[1]
index = type,age
values_list = row[2:]
if index not in no_dupes:
for i,j in enumerate(values_list):
line = [type, year, str(i+1), str(j)]
writer.writerow(line) #using csv module
no_dupes.append(index)
T1 が大きくなると、このコードがどれほど遅くなるかは言い表せません。
T2 に書き込むときに、T1 から重複を除外するより高速な方法はありますか?